遇到一個問題,我們的首頁原來是在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>