简单解决Struts2和FckEditor冲突的方法

最近用了struts2.0以后,fck上传图片老是弹出警告:java

Security error. You probably don't have enough permissions to upload. Please check your server web

什么缘由呢?app

通常状况下跟你的web.xml的配置有关系。通常的配置是jsp

<filter-mapping>   url

    <filter-name>struts2</filter-name>   spa

    <url-pattern>/*</url-pattern>   插件

</filter-mapping> code

这样作,使得struts2的过滤器也做用到了fckeditor的上传URL,从而引起冲突。server

一、第一种解决的办法是修改你的web.xml文件。xml

<filter-mapping>   

    <filter-name>struts2</filter-name>   

    <url-pattern>*.action</url-pattern>   

</filter-mapping> 

只让过滤器对加有.action后缀的路径有效,若是须要拦截.jsp,加上*.jsp就好了。

可是,若是项目中定义了能够不加后缀,那么这种方式就没有效果了。这也是我如今碰到的问题。怎么办?

二、第二种解决办法是将fckeditor的上传方式修改为struts2的上传方式。

网上有位网友还作了struts2的fck插件,很是复杂,不建议这么作,代价太大了。

三、最简单的方法,能够有效的解决这个问题,是下面的方法。

自定义一个struts2的过滤器,将配置换成本身自定义的过滤器。固然这个过滤器要继承StrutsPrepareAndExecuteFilter.java。

而后重写doFilter方法:

Java代码
  1. public void doFilter(ServletRequest req,ServletResponse res,FilterChain chain)throws IOException,ServletException{   
  2.     HttpServletRequest request = (HttpServletRequest)req;   
  3.     if("/fckeditor/editor/filemanager/connectors/fileupload".equals(request.getRequestURI())){   
  4.    chain.doFilter(req,res);   
  5.    }eles{   
  6.      super.doFilter(req,res,chain);   
  7.    }   
  8. }  

经过简单的重写就解决了fckeditor上传和struts2冲突的问题。

 

本文来源于OECP社区http://www.oecp.cn/hi/yongtree/blog/566

相关文章
相关标签/搜索