一、實現與servlet api的互動
com.opensymphony.xwork2包中,它是action執行的上下文,其中常用api方法如下:
**例項化actioncontext
actioncontext的構造方法需要傳遞乙個map類的上下文物件,應用這個構造方法建立actioncontext物件非常不方便,所以通常
情況下都使用actioncontext物件提供的getcontext()方法進行建立。其方法宣告如下:
public static actoincontext getcontext()
**獲取map型別的request
獲取struts2封裝的map型別的request,使用actioncontext物件提供的get()方法進行獲取
public object get(object key)
map request = actioncontext.getcontext.get("request");
actioncontext物件提供的get()方法,不僅可以獲取map型別的request,還可以獲取session、local等物件。
**獲取map型別的session
public map getsession()
二、域模型(domainmodel)
將一些資訊封裝到乙個實體物件,
public class useraction extends actionsupport{
private user user;
@override
public string execute() throws exception{
return success;
public user getuser(){
return user;
public void setuser(user user){
this.user = user;
三、驅動模型modledriven
在struts2 api中,提供了一名為modledriven的介面。action物件可以通過實現此介面,獲取指定的實體物件,
獲取指定實體物件,獲取的方式是實現modeldriven介面提供的getmodel()方法進行獲取。
如果action物件實現了modeldriven介面,當表單被提交到action物件後,其處理流程:
(1)struts2例項化action實現modeldriven
(2)建立user物件
(3)是否實現modledriven
(4)getmodel()
(5)返回user
(6)對屬性賦值
struts2首先會例項化action物件,然後判斷此action物件是否是modledriven物件,如果此action物件實現了modeldriven介面,則會呼叫
getmodel()方法來獲取實體物件模型,在獲取到實體物件之後,將其返。
public clas useraction extends actionsupport implements modeldriven{
private user user = new user();
@override
public string execute() throws exception{
return success;
@override
public user getmodel(){
return this.user;
注意:由於useraction類中的user屬性需要進行初始化操作,否則,在getmodel()方法獲取實體物件時候,將出空指標異常
Struts 2 開發模式示例
預設情況下,struts 2開發模式是禁用的。在struts屬性檔案或xml配置檔案中,將 struts.devmode 值設定為true。struts.properties struts.devmode truestruts.xml 在struts屬性檔案或xml配置檔案中,將 struts.de...
struts2教程 四 struts2的型別轉換
web應用型別的轉換分為兩種情況 1.從客房端的字串到自定義型別的轉換。2.頁面輸出時從自定義型別到字串的轉換。在struts2中分兩種轉換,一種是區域性轉換,另一種是全域性型別轉換。具體轉換的實施需要乙個轉換類和乙個自定義類。我們先來看區域性型別轉換。區域性型別轉換 對於int等基本型別,stru...
struts2的DevMode 開發模式 模式
本文 在實際應用開發或者是產品部署的時候,對應著兩種模式 開發模式 devmode 此時 devmode ture 產品模式 promode 此時 devmode false 在struts.properties或者struts.xml中有devmode的配置,在devmode被啟用的模式下,能夠明...