开发工具:MyEclipse10
UEditor版本:1.4.3,UTF-8
主要是讲本人遇到的问题,使用步骤就只粗略地讲一下了。
1. 将从官网下载的UEditor解压之后复制到Web工程的WebRoot目录下,记得把ueditor/jsp/lib/中的jar包复制到WebRoot/WEB-INF/lib/中。
引入之后可能回出现各种错误提示,基本不影响使用,可以右击ueditor文件夹,选择MyEclipse>Manage Validation...,在Excluded Resources中将ueditor文件夹选中,这样编译器就不会去检查ueditor文件夹中的代码了。
2. 在JSP页面上引用UEditor的JS文件。
[html] view plain copy
<script type="text/javascript" charset="utf-8" src="ueditor/ueditor.config.js"></script>
<script type="text/javascript" charset="utf-8" src="ueditor/ueditor.all.min.js"></script>
<script type="text/javascript" charser="utf-8" src="ueditor/lang/zh-cn/zh-cn.js"></script>
<div>
<span style="white-space:pre;"> </span><script id="ueditor" type="text/plain">初始化内容</script>
<div>
<script>
<span style="white-space:pre;"> </span>var ue = UE.getEditor("ueditor");
</script>
<form action="#" method="POST">
import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter;
public class FilterForUeditor extends StrutsPrepareAndExecuteFilter {
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
String url = request.getRequestURI();
// 不过滤UEditor的请求
if (url.contains("/employment/ueditor/")) {
// System.out.println("使用自定义的过滤器" + url);
chain.doFilter(req, res);
} else {
// System.out.println("使用默认的过滤器");
super.doFilter(req, res, chain);
}
}
}
<filter>
<filter-name>struts2</filter-name>
<!-- Struts2的过滤器 -->
<!--
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
-->
<!-- 自定义的过滤器 -->
<filter-class>com.myFilter.FilterForUeditor</filter-class>
</filter>
"fileUrlPrefix": "/projectName", /* 文件访问路径前缀 */
3. 在body当中放置UEditor。
[html] view plain copy
4. 实例化UEditor。
[html] view plain copy
完成以上4步就可以在页面中看到UEditor了,下面讲具体遇到的问题。
1. 乱码问题
UEditor内容提交到后台之后就乱码了。
前后台编码统一这个就不提了,笔者项目当中都是用的UTF-8编码。讲到这里顺便说一下,下载的UEditor是UTF-8版本,如果开发工具没有设置成UTF-8编码,UEditor中的中文注释就变成乱码了。右击Web工程,点击Properties,就可以在Resource中设置编码。
言归正传,我乱码的原因在于form没有设置为POST。改一下method就可以不会出现乱码了。
[html] view plain copy
2. java.lang.NoSuchMethodError
UEditor上传文件之后出现的错误,没有找到上传文件的方法。
这是由于UEditor1.4.3用来上传文件的jar包是commons-io-2.4.jar,而服务器却用了一个老版本的jar包,在tomcat\webapps\中找到部署的项目,从WEB-INF\lib\目录中删除老版本的jar包即可。
3. 上传文件之后提示找不到上传数据。
我使用的Struts2框架,Request当中有关文件的请求被拦截了,自己写个拦截器放过UEditor就可以了。
首先新建一个过滤器类。
[java] view plain copy
然后在web.xml当中将struts2的过滤器注释掉,加上刚刚自定义的过滤器。
[html] view plain copy
重新运行网站即可成功上传文件。
4. 成功上传附件之后,点击附件链接却出现404错误。
在ueditor/jsp/lib/当中找到config.json,在文件访问路径前缀中写上自己部署的Web工程名称。
[html] view plain copy
阅读全文