在Struts2中沿用Struts1.2的<jsp:forward page="xxx.action"></jsp:forward>失效,報404錯誤。因為Struts2采用過濾器的方式處理請求,REQUEST,當(dāng)?shù)竭_(dá)頁面時,F(xiàn)ORWARD跳到Action。但是這個客戶端的FORWARD并沒有被攔截下來,所以找不到了。從而報出404錯。記得當(dāng)時試過很多方法,都不行。連一些基本的include都無法使用,所以研究了一下,結(jié)合網(wǎng)友提供的。
解決辦法
1、配置web.xml 解決,增加對FORWARD請求的過濾,自然問題就解決了
1 <filter-mapping>
2 <filter-name>struts2</filter-name>
3 <url-pattern >/*</url-pattern>
4 <dispatcher>INCLUDE</dispatcher> //增加對<jsp:include page="xxx.action"/>及其<s:include value="xxx.action"/>支持
5 <dispatcher>REQUEST</dispatcher>
6 <dispatcher>FORWARD</dispatcher>
7 </filter-mapping>
2 <filter-name>struts2</filter-name>
3 <url-pattern >/*</url-pattern>
4 <dispatcher>INCLUDE</dispatcher> //增加對<jsp:include page="xxx.action"/>及其<s:include value="xxx.action"/>支持
5 <dispatcher>REQUEST</dispatcher>
6 <dispatcher>FORWARD</dispatcher>
7 </filter-mapping>
2、用javascript解決,讓請求執(zhí)行到頁面時,接著執(zhí)行如下的代碼,發(fā)現(xiàn)頁面需要重載,然后就重新發(fā)送請求REQUEST,這樣當(dāng)然就會被過濾器所截獲到了。
<script language="javascript">location.replace(URL)</script>
3、利用html meta,等于也是讓頁面等待零秒刷新頁面,重新發(fā)送請求,達(dá)到目的。
<meta http-equiv="refresh" content="0;URL=xxx.action">;
上文轉(zhuǎn)載自解決Struts2中forward問題!
------------------------------------------------------
About Me's
------一個喜歡在一塊青石階上獨立行走的人