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

struts2 urlrewrite 404 异常

2012-10-25 
struts2 urlrewrite 404 错误转自:http://hi.baidu.com/jxcfree/blog/item/8bf0def319304acf7931aab3.html

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

热点排行