struts2註解總結----@Action和@Result

來源:互聯網
上載者:User

標籤:struts2   java   學習總結   

除了使用設定檔配置之外,還可以使用註解來配置

下面是一些常用的註解

介紹:

@Action/@Actions:

@Action指定一個類為action,對應設定檔中的<action>....</action>標籤,其中可以配置如下屬性

  1. results:配置返回的結果集屬性,相當於struts2中的<result>列表,可以在{}中配置屬性,具體如下
  2. value:配置action的名字,相當於<action>中的name屬性
  3. interceptorRefs:配置攔截器
@Action可以定義在類上,也可以定義在方法上如下(@Result的作用後面講,也可以和後面的配合著看)
@Action(value = "testAction",results = {@Result(name="success",location="/success.jsp")})public class testAction extends ActionSupport {@Overridepublic String execute() throws Exception {return SUCCESS;}}
這就相當於如下的xml配置
<action name="testAction" class="struts2.action.testAction"><result name="success">/success.jsp</result></action>
在xml配置中如果name不寫,那麼預設就是success,在註解中也是,如果results中的name不寫,那麼預設就是success
也可以使用@Actions來指定多個action映射,這樣可以做到一個類對應多個地址映射,如下
@Actions({@Action(value = "testAction",results = {@Result(location="/success.jsp")}),@Action(value = "testAction2",results = {@Result(location="/success.jsp")})})public class testAction extends ActionSupport {@Overridepublic String execute() throws Exception {return SUCCESS;}}
這是使用/testAction或者/testAction2都可以跳轉到success.jsp上,因為配置了兩個action映射

在xml配置中,我們有如下的配置方法
<action name="*" class="struts2.action.testAction" method={1}><result name="{1}">/{1}.jsp</result></action>
這是xml配置中的萬用字元方式,即當我們以add來訪問action時,將會進到action的add方法進行處理,當返回add時會跳轉到add.jsp頁面在註解中沒有萬用字元可以使用,但是也可以實作類別似的效果,這時@Action就要寫在方法上了,就像下面這樣
public class testAction extends ActionSupport {@Action(value = "add",results = {@Result(name="add",location="/add.jsp")})public String add() throws Exception {return "add";}@Action(value = "delete",results = {@Result(name="delete",location="/delete.jsp")})public String delete() throws Exception {return "delete";}}
這樣便實現了上面的效果,這說明@Action也是可以在方法上聲明的(@Actions也可以在方法上聲明)

@Result/@Results:

@Result配置具體返回結果,在results中使用,也可以單獨在類上使用,有如下屬性

  1. name:對應<result>中的name屬性
  2. location:對應<result></result>間的地址
  3. type:對應<result>的type屬性
@Result可以在類上聲明,也可以和Action配置聲明,如果在類上聲明,那麼就是全域的結果,如下
@Result(name="delete",location = "/delete.jsp")public class testAction extends ActionSupport {@Action(value = "add", results = { @Result(name = "add", location = "/add.jsp") })public String add() throws Exception {return "add";}@Action(value = "delete")public String delete() throws Exception {return "delete";}}
雖然delete方法沒有指定返回delete時要跳轉到哪個頁面頁面,但是在類上用@Result聲明了,那麼就會找到類上面的這個@Result,然後跳轉到delete.jsp頁面

@Results是用來聲明多個結果集,用法和@Actions類似,這裡就不再詳述




struts2註解總結[email protected]和@Result

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.