3種方法解決Struts2中forward問題!通過jsp:forward跳轉到WEB-INF 下的action中
阿新 • • 發佈:2019-02-05
在Struts2中沿用Struts1.2的<jsp:forward page="xxx.action"></jsp:forward>失效,報404錯誤。因為Struts2採用過濾器的方式處理請求,REQUEST,當到達頁面時,FORWARD跳到Action。但是這個客戶端的FORWARD並沒有被攔截下來,所以找不到了。從而報出404錯。記得當時試過很多方法,都不行。連一些基本的include都無法使用,所以研究了一下,結合網友提供的。
解決辦法
1、配置web.xml 解決,增加對FORWARD請求的過濾,自然問題就解決了
1 <filter-mapping>2
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解決,讓請求執行到頁面時,接著執行如下的程式碼,發現頁面需要過載,然後就重新發送請求REQUEST,這樣當然就會被過濾器所截獲到了。
3、利用html meta,等於也是讓頁面等待零秒重新整理頁面,重新發送請求,達到目的。
<meta http-equiv="refresh" content="0;URL=xxx.action">;