遇到一个问题,我们的首页原来是在index.jsp里做个重定向。
然后被要求主页url只能是域名,不能跳转,于是改成转发,但是转发之后出现404错误。
而直接访问目标地址没有问题,后来网上搜到是因为struts的filter没有处理来自forward的请求,在web.xml里修改一下map参数就行了:
4 Understanding and Using Servlet Filters
http://yanln.iteye.com/blog/1602770 :
<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>
修改为:
<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>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>

本文解决了一个在使用Struts2框架时遇到的问题,即Filter未能正确处理来自forward的请求。通过在web.xml中修改filter配置,将dispatcher参数设置为REQUEST和FORWARD,成功解决了404错误。
1445

被折叠的 条评论
为什么被折叠?



