2.struts2 Actions動作 - ActionSupport

Actions的作用

Actions是Struts2框架的核心,因爲它們適用於任何MVC(Model View Controller)框架。 每個URL映射到特定的action,其提供處理來自用戶的請求所需的處理邏輯。
但action還有另外兩個重要的功能。 首先,action在將數據從請求傳遞到視圖(無論是JSP還是其他類型的結果)方面起着重要作用。 第二,action必須協助框架確定哪個結果應該呈現在響應請求的視圖中。

Action詳解

Struts2中actions的唯一要求是必須有一個無參數方法返回String或Result對象,並且必須是POJO。如果沒有指定no-argument方法,則默認是使用execute()方法。
你還可以擴展ActionSupport類,該類可實現六個接口,包括Action接口。Action的接口如下:

public interface Action {
   public static final String SUCCESS = "success";
   public static final String NONE = "none";
   public static final String ERROR = "error";
   public static final String INPUT = "input";
   public static final String LOGIN = "login";
   public String execute() throws Exception;
}

1). ActionSupport 是默認的 Action 類: 若某個 action 節點沒有配置 class 屬性, 則 ActionSupport 即爲待執行的 Action 類. 而 execute 方法即爲要默認執行的 action 方法

<action name="testActionSupport"
    class="com.opensymphony.xwork2.ActionSupport"
    method="execute">
    <result>/testActionSupport.jsp</result>
</action>

 等同於

<action name="testActionSupport">
    <result>/testActionSupport.jsp</result>
</action>

2). 在手工完成字段驗證, 顯示錯誤消息, 國際化等情況下, 推薦繼承 ActionSupport.

演示

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

所以,在業務稍微複雜些後,推薦繼承 ActionSupport.

創建Action

public class HelloWorldAction extends ActionSupport{
   private String name;

   public String execute() throws Exception {
      if ("SECRET".equals(name))
      {
         return SUCCESS;
      }else{
         return ERROR;  
      }
   }
   
   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }
}

在這個例子中,我們在execute方法中使用一些邏輯來查看name屬性。如果屬性等於字符串“SECRET”,我們返回SUCCESS作爲結果,否則我們返回ERROR作爲結果。因爲我們已經擴展了ActionSupport,所以我們可以使用String常量、SUCCESS和ERROR。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章