使用UEditor进行图片上传的时候报错,说未找到上传数据。因为这个插件以前用过上传图片时没碰到问题,所以想着应该是项目问题,项目是SSH框架,百度了一下,说是被拦截了。
这个原解决方案的链接:https://my.oschina.net/jiangli0502/blog/210263,说的比较详细。我这里就记录一下我自己的处理过程,备忘。
1、新建自己的过滤器,并且不过滤UEditor的连接:
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;
//自定义的struts2的过滤器
public class MyStrutsFilter extends StrutsPrepareAndExecuteFilter{
@Override
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
String url = request.getRequestURI();
//System.out.println(url);
if (url.contains("/KFCenter/news/ueditor/jsp")) {//ueditor的不拦截
//System.out.println("使用自定义过滤器");
chain.doFilter(req, res);
}else{
//System.out.println("使用默认过滤器");
super.doFilter(req, res, chain);
}
}
}
2、修改web.xml配置文件:使用自己的过滤器替换掉struts的(拦截的类型不用变,以前是什么样就是什么样,我这里的项目原本就过滤action和jsp)
<filter> <filter-name>struts2</filter-name> <!-- <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>--> <filter-class>com.tzj.KFCenter.action.MyStrutsFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping>
3、注意将所有的jar包都引入:UEditor的jsp版本有另外的jar包,一定不要忘记了。