关于Struts2+spring+maven中使用百度UEditor编辑器显示未找到上传数据的解决方案

来源:互联网 发布:神马快递打印软件 编辑:程序博客网 时间:2024/05/09 04:45

首先上个图,看看你的是不是这个问题:如果是请继续往下看,不要急,急了就会浪费更多的时间,这是我在解决这个为题中学到的。


解决思路是,重写struts2中的一个转换的类,然后配置struts2使用我们重写的这个类。

我在网上找了一段代码 即增加创建一个过滤器,用来过滤ueditor的上传请求:


package cn.piaole.mybatis.demo.util.common;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import org.apache.struts2.dispatcher.StrutsRequestWrapper;public class UeditorFilter implements Filter {    @Override    public void doFilter(ServletRequest req, ServletResponse res,            FilterChain chain) throws IOException, ServletException {        HttpServletRequest request = (HttpServletRequest) req;        String url = request.getRequestURI();                    if (decideURI(url)) {                chain.doFilter(new StrutsRequestWrapper((HttpServletRequest) req), res);            }else{                chain.doFilter(req, res);            }            }        /**     * ueditor编辑器中的图片上传和文件上传     * @param url     * @return     */    private boolean decideURI(String url){        if(url.endsWith("imageUp.jsp")){            return true;        }else if(url.endsWith("fileUp.jsp")){            return true;        }//此处可能需要修改        return false;    }        @Override    public void destroy() {            }    @Override    public void init(FilterConfig filterConfig) throws ServletException {            }}

由于我使用的是最新的百度UEditor编辑器,所以上传图片不是使用的imageUp.jsp

所有的上传都是使用的controller.jsp,所以将if中的判断改为 

if (url.endsWith("controller.jsp")) {
            return true;
        }

即可

注意还需要在web.xml中配置使用上面定义的过滤器,代码如下

    <filter>         <filter-name>struts2</filter-name>        <filter-class>cn.piaole.mybatis.demo.util.common.UeditorFilter</filter-class>     </filter>    <filter-mapping>         <filter-name>struts2</filter-name>         <url-pattern>/*</url-pattern>     </filter-mapping>

就此,问题得到解决


由于本人水平有限,文章中难免会有一些疏漏,请大家多多指出,谢谢!





0 0
原创粉丝点击