網站後臺需要添加富文本編輯器,偶然的機會發現了百度的UEditor,經過一番配置(我使用的環境是struts2+hibernate+spring),終於是成功了,下面來記錄一下配置的過程:
step1:首先去UEditor官網下載UEditor,我下載的1.4.3.3版本的.
step2:解壓下載得到的UEditor,裏面的目錄結構如下圖
將這整個目錄拷貝進工程裏面(我將它改名成爲ueditor):
step3:使用UEditor,新建一個demo.html
<!DOCTYPE html>
<html>
<head>
<title>demo.html</title>
<meta name="keywords" content="keyword1,keyword2,keyword3">
<meta name="description" content="this is my page">
<meta name="content-type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
<!-- 配置文件 -->
<script type="text/javascript" src="ueditor.config.js"></script>
<!-- 編輯器源碼文件 -->
<script type="text/javascript" src="ueditor.all.js"></script>
</head>
<body>
<!-- 加載編輯器的容器 -->
<script id="container" name="content" type="text/plain">
這裏寫你的初始化內容
</script>
<!-- 實例化編輯器 -->
<script type="text/javascript">
var ue = UE.getEditor('container');
</script>
</body>
</html>
在裏面引入兩個js文件:
<script type="text/javascript" src="ueditor.config.js"></script>
<script type="text/javascript" src="ueditor.all.js"></script>
這個是要接入富文本編輯器需要引入的兩個文件
<script id="container" name="content" type="text/plain">
這裏寫你的初始化內容
</script>
這個腳本是加載富文本編輯器,接下來就是創建富文本編輯器的實例了,創建之後就能看到富文本編輯器的頁面:
<script type="text/javascript">
var ue = UE.getEditor('container');
</script>
下面就是創建富文本編輯器之後的頁面:
好了,簡單的使用富文本編輯器就成功,接下來要配置文件上傳的功能,
因爲富文本上傳文件需要後臺的支持:
step4:配置圖片上傳,先找到文件夾裏面的config.json文件,我的文件在這
然後看配置:,配置完成之後還有一步最重要,那就是修改配置過濾器,不然無法上傳,因爲文件上傳會被struts2自身的攔截,那麼ueditor裏面自帶的接收文件上傳功能將收不到文件內容。
step5:繼承struts的核心過濾器,並重寫:
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter這個過濾器的是struts2的核心過濾器,如果要使用struts2必須要在web.xml裏面配置這個過濾器,我們繼承它,這樣我們自己寫的過濾器既有它的功能,也有我們自己想要的功能:
public class MyStrutsFilter extends StrutsPrepareAndExecuteFilter{
@Override
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest)req;
String url = request.getRequestURI();
System.out.println(url);
//如果來自ueditor就不使用struts2的過濾器
if( url.contains("/ueditor/jsp")) {
chain.doFilter(req, resp);
} else {
super.doFilter(req, resp, chain);
}
}
}
還有web.xml裏面的配置:
<!-- 配置struts過濾器 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>cn.yiyituan.util.MyStrutsFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
好了,至此上傳圖片的功能配置好了,我們來看看效果: