程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> alias攔截器的使用,alias攔截器使用

alias攔截器的使用,alias攔截器使用

編輯:JAVA綜合教程

alias攔截器的使用,alias攔截器使用


在SSH項目中,有時需要由一個Action跳轉到另一個Action。有兩種方式可以實現Action之間的跳轉,一種是chain,另一種是redirectAction,這兩種方式之間的區別是chain是在服務器上跳轉,可以實現不同Action之間的數據共享;而redirectAction是在客戶端進行跳轉。

使用chain在不同的Action之間傳遞參數值,這個功能可以通過alias攔截器來實現。

1. 指定Filter類

在web.xml中設置下面的攔截器:

  <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>

2. 傳遞參數值

在struts.xml文件中,定義第一個被調用的Action:

        <action name="XXX" class="XXXAction">
            <result name="success"></result>
            <result name="input" type="chain">
                <param name="actionName">input_error</param>
            </result>
        </action>

定義第二個被被調用的Action:

        <action name="input_error" class="inputErrorAction">
            <param name="aliases">#{'error_status':'status','error_desc':'desc'}</param>
        </action>

當第一個Action返回input時,就會跳轉到第二個Action,此時將第一個Action中的error_status、error_desc的值分別傳遞給第二個Action的status、desc,從而實現了參數值的傳遞。一定要注意進行參數值傳遞的變量一定要有getter()和setter()方法,否則傳遞過去的值就是null。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved