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...