首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

通过配置struts.xml解决 struts2和 dwr兼容的有关问题

2012-12-22 
通过配置struts.xml解决 struts2和 dwr兼容的问题众所周知,strust2 通过在 web.xml中配置 filter,对所有路

通过配置struts.xml解决 struts2和 dwr兼容的问题
众所周知,strust2 通过在 web.xml中配置 filter,对所有路径的请求进行过滤。
代码如下:

<filter>  <filter-name>struts2</filter-name>  <filter-class>   org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter  </filter-class></filter><filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>  

而dwr也是在web.xml配置servlet,对请求dwr的路径进行过滤,
代码如下:
 <servlet>  <servlet-name>dwr-invoker</servlet-name>  <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>  <init-param><param-name>debug</param-name><param-value>true</param-value></init-param>  </servlet>  <servlet-mapping><servlet-name>dwr-invoker</servlet-name><url-pattern>/dwr/*</url-pattern></servlet-mapping>

这样就会产生冲突:给dwr的请求让struts2过滤了。
幸好struts2有一个参数:struts.action.excludePattern ,意思是该参数的值指定的请求,struts2不对其进行过滤。
这样dwr就能进行过滤了。

解决办法:
在struts.xml中,添加:
<struts>   <constant name="struts.action.excludePattern" value="/dwr/test/.*,/dwr/.*"/></struts>

问题解决。

注意:value="/dwr/test/.*,/dwr/.*" 中的/dwr/test/.*,/dwr/.*是正则表达式的写法,不是路径的写法!
注意那个“.*” ,而不是“*”

热点排行