1. 程式人生 > >3種方法解決Struts2中forward問題!通過jsp:forward跳轉到WEB-INF 下的action中

3種方法解決Struts2中forward問題!通過jsp:forward跳轉到WEB-INF 下的action中

在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
    <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解決,讓請求執行到頁面時,接著執行如下的程式碼,發現頁面需要過載,然後就重新發送請求REQUEST,這樣當然就會被過濾器所截獲到了。

<script language="javascript">location.replace(URL)</script>

3、利用html meta,等於也是讓頁面等待零秒重新整理頁面,重新發送請求,達到目的。

<meta http-equiv="refresh" content="0;URL=xxx.action">