首先先说一下可能发生的问题,jar包冲突可能导致上传图片失败,这个是重点,之前初次使用时一直上传不了,查控制台才发现是jar包冲突了因为以前项目里面使用过,使用Ueditor文件夹里面自己的jar包,Ueditor的下载可以自行去官网下载,然后开始是SSH框架下的配置:
SSH框架整合Ueditor:
以下是项目结构ssh和ssm配置都一样:(忽略json文件的报错,因为ueditor json文件里面有注释,所以才会报错,但是没有关系,不会有什么影响,只要设置下忽略就好了)
将里面的jar包放进WEB_INF文件下的lib文件,并保证没有不同版本冲突,每个类型的jar包只能有一个版本
<div><textarea id="container" name="content" style="height: 400px"></textarea></div>
<script type="text/javascript" src="<%=basePath %>ueditor/ueditor.config.js"></script>
<script type="text/javascript" src="<%=basePath %>ueditor/ueditor.all.js"></script>
<script type="text/javascript">
var ue = UE.getEditor('container');
ue.addListener('ready', function( editor ) {
ue.execCommand( 'drafts' );
});
ue.ready(function() {
ue.execCommand( 'drafts' );
});
</script>
最下面的js的意思是设置本地保存。
然后在开始配置,打开config.json文件,修改上传图片项目路径,将下面用红笔圈的改为自己项目名字
Ueditor文件配置结束,现在开始设置struct2默认过滤器,自己设置过滤器取代struct2默认过滤器,不然Ueditor请求会被拦截。
在web.xml里面将原来的struct2过滤器配置为:(因为我使用的是ssh注解框架,所以还有一些action配置,如果不是注解版的,可以忽略)
<filter-name>struts2Filter</filter-name>
<filter-class>org.gzhmu.forum4gy.filter.UEditorFilter</filter-class>
<init-param>
<param-name>actionPackages</param-name>
<param-value>org.gzhmu.forum4gy.action</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
所以过滤器里面的内容为:
/**
* Servlet Filter implementation class UEditorFilter
*/
@WebFilter("/UEditorFilter")
public class UEditorFilter extends StrutsPrepareAndExecuteFilter {
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) {
HttpServletRequest request = (HttpServletRequest) req;
String url = request.getRequestURI();
// System.out.println(url);
try{
if (url.contains("/Forum4gy/ueditor/jsp/")) {
// System.out.println("使用自定义过滤器");
chain.doFilter(req, res);
}else{
// System.out.println("使用默认过滤器");
super.doFilter(req, res, chain);}
}catch(Exception e){
e.printStackTrace();
}
}
}
注意写过滤器路径时要注意,最好不要手写,直接从选中文件,右键->properties,复制路径,改一下就行,不然一个字母错了,又得花时间查找错误。到这里,ssh整合ueditor已经成功了,接下是ssm框架整合。
SSM框架整合Ueditor:
在UEditor文件的配置参考上面的配置,主要是springMvc配置,设置一些资源文件不被拦截,在web.xml上加入以下代码:
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.gif</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.png</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.bmp</url-pattern>
</servlet-mapping>
这样写聚会导致资源文件路径不能用了,所以删除资源文件路径。如下删除:
把相应的jar包导入lib就可以了,若是不行则检查路径,大部分错误都是因为Ueditor资源被拦截或路径错误,多仔细查看浏览器和eclipse控制台提示信息。