四 Struts2的開發模式

2021-05-25 08:45:14 字數 1796 閱讀 1346

一、實現與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被啟用的模式下,能夠明...