读书人

struts2 urlrewrite 404 异常

发布时间: 2012-10-25 10:58:57 作者: rapoo

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.很白痴的提醒一下,转发的时候不用重新传递参数

读书人网 >软件架构设计

热点推荐