`
frozen_cmlei
  • 浏览: 11963 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts2 urlrewrite 404 错误

阅读更多

转自:http://hi.baidu.com/jxcfree/blog/item/8bf0def319304acf7931aab3.html


下载了urlrewritefilter-3.2.0.zip,安装。。。

加入到工程后测试,发现转向到action的时候总是报404的错误,

修改为跳转到静态页面,也是找不到。

分析原因是struts2的拦截器在作怪,貌似在rewrite之前拦截了。

由于xml已经先配置了struts2的拦截器,所以加rewrite的时候,就放在了struts2的下面,

更换位置,把rewrite拦截器的位置放到strtus2的上面,

运行,发现转向到静态页面没问题了,但是转向到action还是报404,

尝试把to标签添加type=redirect,运行,可以跳转,但是由于是重定向,地址栏的地址又变成struts2的样子。

但是不加redirect还是报404,

分析,可能是struts2转向机制的问题,

查阅资料,说是要在配struts2拦截器的时候需要加:

<dispatcher>REQUEST </dispatcher>  
<dispatcher>FORWARD </dispatcher>  
<dispatcher>INCLUDE </dispatcher>



这三个节点。

但是个人感觉只要可以分发FORWARD就应该可以。

所以修改代码如下:

<filter-mapping>
   <filter-name>struts2</filter-name>
   <url-pattern>/*</url-pattern>
   <dispatcher>FORWARD</dispatcher>  
</filter-mapping>


运行,正常,还有待大量测试。

总结:

1、配置web.xml的时候,rewrite一定要在strtus2的上面。

2、strtus2的filter-mapping一定要添加:<dispatcher>FORWARD</dispatcher>

3.很白痴的提醒一下,转发的时候不用重新传递参数
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics