这几天国庆放假,在家看了一下小东西,百度的ueditor在线编辑器,感觉还是不错的,有很多的语言版本可供选择,还可以定制功能,但是与java web开发中结合中还是遇到了点小小问题,这里记录一下。
我用的是1.4.3版本,通过个人需要定制的版本
一、新建java web项目:
新建java web项目,建好之后,把下载好的ueditor包解压,并把目录下\jsp\lib文件夹下的jar包都拷贝到新建项目lib文件夹下,并把这些包导入项目中。
之后,在项目WebRoot文件夹下创建ueditor文件夹,之后,把解压的文件全部拷贝到WebRoot/ueditor文件夹下。
二、处理报错并修改配置文件:
这时拷贝完文件后,有的js或者jsp文件会报错,而且在我这里config.json文件也会报错,解决方法是选择报错的文件,鼠标右键,选择Myeclipse--->Exclude From Validation之后再选择Run Validation就可以了。
处理之后打开config.json,找到"imageUrlPrefix"属性,并把属性值配置格式为"http://[projectIP]:[prot]/[projectName]"的内容,在这里我的是"http://localhost:8080/AppBugManager"
这是配置图片上传后的访问路径,如果不配置,上传完图片就不能访问到了。
三、加入struts2.x的支持:
通过上面的处理,访问项目下的ueditor/index.html就可以查看demo了,并且可以上传图片,接下来我们加入struts2.x的架包,注意的是!注意哦!如果项目中需要使用到两个相同的架包,name剔除掉旧版本的留下新版本的。ueditor提供了commons-fileupload-1.3.1和commons-io-2.4的架包,这两个架包都比struts2.x提供的比较新,所以要剔除struts2.x中的这连个架包的旧版本,ok这样就没有问题了
四、自定义struts2.x拦截器:
加入struts2.x后,在去访问ueditor/index.html后竟然不能上传图片了,这是因为,struts2.x的默认拦截器把图片上传给拦截了,所以我们需要自定义一个拦截器,如果是ueditor上传图片我们就放行,如果是平常的访问,我们就让其通过struts2.x的拦截器:
代码如下:
MyStrutsFilter.java
package com.appTest.Filter;
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 MyStrutsFilter extends StrutsPrepareAndExecuteFilter{
public void doFilter(ServletRequest req, ServletResponse res,FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
//不过滤的url
String url = request.getRequestURI();
System.out.println(url);
if (url.contains("/AppBugManager/ueditor/jsp/")) {
System.out.println("使用自定义的过滤器");
chain.doFilter(req, res);
}else{
System.out.println("使用默认的过滤器");
super.doFilter(req, res, chain);
}
}
}
其中那个路径要配置为/[projectName]/ueditor/jsp/
之后修改web.xml文件,把之前的struts2.x的拦截器配置剔除,加入我们之定义的拦截器配置:
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>AppBugManager</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
com.appTest.Filter.MyStrutsFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
OK,经过上面的处理ueditor就可以在struts2.x的项目中使用了!
源码下载地址:http://download.csdn.net/detail/yezis/8008473