06 封裝struts2引數

2021-09-06 20:02:43 字數 1888 閱讀 4734

action動作類

public class personaction extends actionsupport 

public string getname()

public void setname(string name)

}

struts.xml

張岩/success.jsp

系統執行期間使用者提交表單,ajax,url訪問。    

動作類和模型和為一體,我們可以在動作類中定義要接收的屬性的值,對每個屬性必須要提供set和get方法,動作類model中的屬性的名字和表單中的name一定要一致,否則無法注入。

jsp頁面:form.jsp

這裡我加了命名空間/aaa,注意必須有/ 。action也必須是/專案名

action頁面

public class personaction extends actionsupport 

public void setname(string name)

/*省略其他set get*/

public string hello()

}

struts.xml

/success.jsp

最後訪問http://localhost:8080/strus2/form.jsp

動作類充當模型物件action既是是c又是m,可讀性差,重用性差,很難維護,不推薦使用第一種。

這種方式接受引數對提交的表單中的name有要求,name需要使用action中的model屬性的名字加點再加上要接收的屬性名:如 person.name

新建com.zy,model用來封裝person

package com.zy.model;

public class person

public void setname(string name)

/*其他set get省略*/

/*提供tostring*/

@override

public string tostring()

}

action動作了要定義person物件,提供set 和 get

public class personaction extends actionsupport 

public void setperson(person person)

public string hello()

}

第二種方式對頁面上的文字域的name有要求必須要用model的屬性的名稱.屬性名,這樣的話頁面和action動作類有侵入性,模型驅動方式解決了這個問題,我們需要實現乙個modeldriven介面指定要接收的model 的型別提供getmodel的方法,action

類中的model

物件必須要手動的建立,否則無法注入屬性值。

action動作類

public class personaction extends actionsupport implements modeldriven

public void setperson(person person)

public string hello()

@override

public person getmodel()

}

注意:重寫方法返回person 

form的name就不需要person.name,直接name就可以。

其他**和2相同。

struts2封裝請求引數的幾種方式

方式一 動作類action本身作為model物件,set 方法封裝搞定 乙個name params 的 幹的 頁面表單 動作類封裝資料 定義欄位名 set 方法 字段屬性和表單的name屬性名保持一致 public class textaction extends actionsupport 注 模...

Struts2筆記06 封裝獲取表單資料方式

使用屬性封裝獲取表單資料到屬性裡面,不能把資料直接封裝到實體類物件裡 實現步驟 1 在action成員變數位置定義變數 變數名稱和表單輸入項name屬性值一樣 2 生成變數的set方法 表單資料 form action form.action method post 使用者名稱 input type...

Struts2資料封裝

一 靜態資料封裝 靜態資料封裝,就是將資料寫死 struts.xml name staticparam extends struts default name staticparam class staticparam.staticparamaction method login name user...