1 :直接讓上面的Action去實現Struts2框架Action接口。裡面會提供幾個常量和一個抽象的execute方法。以下就是struts2提供的Action接口。
//定義5個字符串常量,統一返回值。主要的作用是 規范返回值。
public abstract interface com.opensymphony.xwork2.Action {
// Field descriptor #4 Ljava/lang/String;
public static final java.lang.String SUCCESS = "success";
// Field descriptor #4 Ljava/lang/String;
public static final java.lang.String NONE = "none";
// Field descriptor #4 Ljava/lang/String;
public static final java.lang.String ERROR = "error";
// Field descriptor #4 Ljava/lang/String;
public static final java.lang.String INPUT = "input";
// Field descriptor #4 Ljava/lang/String;
public static final java.lang.String LOGIN = "login";
// Method descriptor #16 ()Ljava/lang/String;
public abstract java.lang.String execute() throws java.lang.Exception;
}
2: 讓上面的Action去繼承Struts2框架的ActionSupport(com.opensymphony.xwork2.ActionSupport)這個類提供了Struts2的很多特殊的功能。
讓Action類繼承這個ActionSupport類,就會時Action類可以提供數據校驗,國際化,對象序列化等功能 。而且這個ActionSupport是實現Action接口的。
以下就是這個ActionSupport類要實現的接口聲明。
public class com.opensymphony.xwork2.ActionSupport
implements com.opensymphony.xwork2.Action,
com.opensymphony.xwork2.Validateable,
com.opensymphony.xwork2.ValidationAware,
com.opensymphony.xwork2.TextProvider,
com.opensymphony.xwork2.LocaleProvider,
java.io.Serializable {
。。。 相關的處理方法
}
需要注意的地方
Actionsupport這個工具類在實現了Action接口的基礎上還定義了一個validate()方法,重寫該方法,它會在execute()方法之前執行,如校驗失敗,會轉入input處,必須在配置該Action時配置input屬性。
如果檢驗出錯誤可以調用this.addFieldError的方法給框架添加錯誤信息。然後在頁面中可以直接顯示出來。
如下示例:
@Override
public void validate() {
if(null == this.getPasswd() || "".equals(this.getPasswd().trim())){
this.addFieldError(passwd, "passwd is required");
}
if(null== this.getUsername() || "".equals(this.getUsername().trim())){
this.addFieldError(username, "username is required");
}
}
另外,Actionsupport還提供了一個getText(String key)方法還實現國際化,該方法從資源文件上獲取國際化信息,這是非常有用的。