个人博客_百洋软件研究实验室
  • 您好!欢迎来到yongtree的博客

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

(2009-12-16 17:45)

没用 struts2.0之前 , fck能正常上传图片。 用了 struts2.0之后,fck上传图片 弹出 警告:Security error. You probably don't have enough permissions to upload. Please check your server 

什么原因呢?

一般情况下跟你的web.xml的配置有关系。一般的配置是

<filter-mapping>   

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

    <url-pattern>/*</url-pattern>   

</filter-mapping> 

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

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

<filter-mapping>   

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

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

</filter-mapping> 

只让过滤器对加有.action后缀的路径有效,如果需要拦截.jsp,加上*.jsp就行了。

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

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

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

3、最简单的方法,可以有效的解决这个问题,是下面的方法。

自定义一个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冲突的问题。

 

文件下载:
    无下载文件
阅读:130
发表评论

博主简介
  • yongtree
  • 博客积分:0分
  • 博客访问:14269次
  • 来自:青岛市
我要留言
公告
正如俞敏洪所说,我们要像树一样活着,活着是一道美丽的风景,死后依然是栋梁之才。 天空有美丽的风景,不是一望无际的蓝天,不是虚无缥缈的白云,而是一览众山小的开阔,无人可及的高度。
 
访客