在struts 2中,您將花費大部分時間進行操作。 動作類包含業務邏輯,檢索資源束,儲存資料,驗證並選擇應傳送回使用者的檢視結果頁面。 這是struts 2的核心,因此您必須了解動作的基本概念。
struts 2動作不會強制您實現任何介面或擴充套件類,只需要您實現乙個execute()方法,該方法返回乙個字串以指示應該返回哪個結果頁面。
package com.mkyong.user.action;
public class loginaction
}
在struts.xml中,使用操作標籤和類屬性配置操作類。 使用結果標籤定義哪個結果頁面應該返回給使用者,以及使用名稱屬性可以訪問該操作類的操作名稱。
pages/welcome.jsp
現在,您可以通過.action副檔名字尾訪問操作。
http://localhost:8080/struts2example/user/validateuser.action
預設的.action是可配置的,只需更改「 struts.action.extension 」值即可。
struts 2帶有乙個可選的動作介面(com.opensymphony.xwork2.action)。 通過實現此介面,它帶來一些便利的好處,請參見源**:
package com.opensymphony.xwork2;
public inte***ce action
該介面非常簡單,帶有5個常用常量值:成功,錯誤,無,輸入和邏輯。 現在,動作類可以直接使用常量值。
package com.mkyong.user.action;
import com.opensymphony.xwork2.action;
public class loginaction
}
我不明白為什麼許多struts開發人員喜歡實現此action介面,最好擴充套件actionsupport。
支援類,這是提供介面的預設實現的一種常見做法。actionsupport(com.opensymphony.xwork2.actionsupport),乙個非常強大且方便的類,提供一些重要介面的預設實現:
public class actionsupport implements action, validateable,
validationaware, textprovider, localeprovider, serializable
actionsupport類使您可以執行以下操作:
1.驗證–宣告了validate()方法並將驗證**放入其中。
2.文字本地化–使用gettext()方法從資源束中獲取訊息。
package com.mkyong.user.action;
import com.opensymphony.xwork2.actionsupport;
public class loginaction extends actionsupport
public void setpassword(string password)
public string getusername()
public void setusername(string username)
//business logic
public string execute()
//****** validation
public void validate()
if("".equals(getpassword()))
}}
在大多數情況下,除非有理由不這樣做,否則應擴充套件此類以提供方便的功能。 這也是一門很好的學習班,了解如何實現一些重要的struts 2介面。struts 2對註解有很好的支援,您可以刪除xml檔案,並在操作類中將其替換為@action。
package com.mkyong.user.action;
import org.apache.struts2.convention.annotation.action;
import org.apache.struts2.convention.annotation.namespace;
import org.apache.struts2.convention.annotation.result;
import org.apache.struts2.convention.annotation.resultpath;
import com.opensymphony.xwork2.actionsupport;
@namespace("/user")
@resultpath(value="/")
public class validateuseraction extends actionsupport)
public string execute()
}
不用費神,只擴充套件actionsupport類,它適合大多數情況。
標籤: struts2
翻譯自:
Struts 2 模型驅動動作教程
struts 2 模型驅動動作例題 建立乙個模型驅動 modeldriven 動作 action 需要捕獲modeldriven介面,還需要包括模型驅動 modeldriven interceptor 模型驅動 modeldriven interceptor 已經包含在default stack裡了...
struts2標籤使用
專案中用到的幾個strut2標籤 1,s checkbox 該標籤對應html中標籤,當時在使用struts2時,使用struts標籤是非常方便的。若有需求 在action中,將checkbox的資料來源放入值棧 listsmalldevices new arraylist actioncontex...
struts2 使用總結
1 遍歷基礎型別的陣列或集合 此處也可寫成 但是這種寫法當雙重遍歷的時候,也就是嵌的時候,sj的值不會自動重新初始化,導致下一次外部迴圈的時候sj的值還是上一次最後一次遍歷時的值。2 判斷集合是否為空 3 s if 標籤的test遇到的問題 在用s if 的test做字串等於判斷時遇到了判斷不準確的...