struts2為什么action要繼承actionSupport類


我們為了方便實現Action,大多數情況下都會繼承com.opensymphony.xwork2.ActionSupport類, 並重載(Override)此類里的String execute()方法,因為ActionSupport已經實現了Action接口, 還實現了Validateable接口,提供了數據校驗功能。通過繼承該ActionSupport類,可以簡化Struts 2的Action開發。  

 Action 跟 Actionsupport 的區別: 當我們在寫action的時候,可以實現Action接口,也可以繼承Actionsupport這個類.到底這兩個有什么區別呢?   

Action接口有:   

 public static final Java.lang.String SUCCESS = "success";  

 public static final java.lang.String NONE = "none";  

public static final java.lang.String ERROR = "error";  

 public static final java.lang.String INPUT = "input"; 

  public static final java.lang.String LOGIN = "login"; 

  public abstract java.lang.String execute() throws java.lang.Exception;  

  而Actionsupport這個工具類在實現了Action接口的基礎上還定義了一個validate()方法, 重寫該方法,它會在execute()方法之前執行,如校驗失敗,會轉入input處, 必須在配置該Action時配置input屬性。 

  另外,Actionsupport還提供了一個getText(String key)方法還實現國際化,該方法從資源文件上獲取國際化信息. 這樣在自定義標簽時可以定義一個變量為new actionsupport對象實現國際化。  

ActionSupport類的作用 struts2不要求我們自己設計的action類繼承任何的struts基類或struts接口, 但是我們為了方便實現我們自己的action,大多數情況下都會繼承com.opensymphony.xwork2.ActionSupport類,並重寫此類里的public String execute() throws Exception方法。 因為此類中實現了很多的實用借口,提供了很多默認方法,這些默認方法包括國際化信息的方法、默認的處理用戶請求的方法等,這樣可以大大的簡化Acion的開發。 

   Struts2中通常直接使用Action來封裝HTTP請求參數,因此,Action類里還應該包含與請求參數對應的屬性,並且為屬性提供對應的getter和setter方法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM