struts2的execAndWait攔截器使用

一任天然發表於2008-11-27

使用execAndWait攔截器可以在等待較長時間的後臺處理中增加等待頁面。

struts.xml中可定義如下:

  1. <action name="testAction" class="com.TestAction">
  2.       <interceptor-ref name="execAndWait"></interceptor-ref>
  3.       <result >success.jsp</result>
  4.       <result name="wait">wait.jsp</result>      
  5. </action>

wait.jsp如下:

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2.     pageEncoding="UTF-8"%>
  3. <%@ taglib prefix="s" uri="/struts-tags"%>
  4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  5. <html>
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  8. <meta http-equiv="refresh" content="5;url=<s:url includeParams="all"/> "/>
  9. <title><s:text name="title"></s:text></title>
  10. </head>
  11. <body>
  12. <h1>資料處理中,請稍等......</h1>
  13. <a href="<s:url includeParams="all" />"> 點這裡 </a> 如果沒有自動跳轉請點選這裡.
  14. </body>
  15. </html>

 

<meta http-equiv="refresh" content="5;url=<s:url includeParams="all"/> "/>為每隔5秒自動重新整理定位到目標頁面

如果瀏覽器不支援自動重新整理,可以手動定位,如下:

<a href="<s:url includeParams="all" />"> 點這裡 </a>

 

<s:url includeParams="all"/>

其中的includeParams引數取值為:

none,不把引數加入到url引數中

all,是把get和post中的引數加入到url引數中
get,是隻把get中的引數加入到url引數中

 

注:在使用過程中發現一個問題,在使用struts總使用session的時候

Map session = ActionContext.getContext().getSession();

取到的session為null,原因尚不明確.

相關文章