首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

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

2012-10-25 
解决Struts2和FckEditor冲突最简单的方法没用 struts2.0之前 , fck能正常上传图片。 用了 struts2.0之后,fc

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

没用 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{ ?? ????HttpServletRequest?request?=?(HttpServletRequest)req; ??
  2. ????if("/fckeditor/editor/filemanager/connectors/fileupload".equals(request.getRequestURI())){ ?? ???chain.doFilter(req,res); ??
  3. ?? }eles{ ?? ???? super.doFilter(req,res,chain); ??
  4. ?? } ?? }??

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

?

本文转载自百洋软件实验室?的http://www.po-soft.com/blog/yongtree/566.html

1 楼 heglase 2010-01-12   想问一下青岛的薪资怎么样了啊?很想回去 2 楼 yongtree 2010-01-12   啊?很想回去heglase 写道想问一下青岛的薪资怎么样了啊?很想回去
很一般的,贫富差距蛮大的。中产阶级还是比较辛苦的。

热点排行