Struts2框架的資料封裝一之屬性封裝(屬性封裝的第二種方式:封裝成javaBean)
阿新 • • 發佈:2018-12-11
Struts2中提供了兩類資料封裝的方式?
第一種方式:屬性驅動(有兩種方式:一個對屬性,另外一個是將引數封裝到javaBean中)
B. 在頁面上,使用OGNL表示式進行資料封裝。(將引數封裝到javaBean中)
* 在頁面中使用OGNL表示式進行資料的封裝,就可以直接把屬性封裝到某一個JavaBean的物件中。 * 在頁面中定義一個JavaBean,並且提供set方法:例如:private User user; * 頁面中的編寫發生了變化,需要使用OGNL的方式,表單中的寫法:<input type="text" name="user.username"> * 注意:只提供一個set方法還不夠,必須還需要提供user屬性的get和set方法!!! > 先呼叫get方法,判斷一下是否有user物件的例項物件,如果沒有,呼叫set方法把攔截器建立的物件注入進來,
例:
1.書寫javaBean類User:
package com.huida.domain;
public class User {
private String username;
private String password;
public String getUsername() {
return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User [username=" + username + ", password=" + password + "]"; } }
2.寫對應的action類,Regist2Action:
package com.huida.action1;
import com.huida.domain.User;
import com.opensymphony.xwork2.ActionSupport;
public class Regist2Action extends ActionSupport{
//屬性驅動不需要手動例項化
private User user;
//提供set和get方法
public User getUser() { return user; } public void setUser(User user) { this.user = user; } @Override public String execute() throws Exception { System.out.println(user); return NONE; } }
3.對action進行配置:
<package name="demo" namespace="/" extends="struts-default"> <action name="regist2Action" class="com.huida.action1.Regist2Action"></action> </package>
4.在index.jsp中寫對應的表單,這裡注意表單的中name對應值的變化,應該寫為user.username:
<h3>屬性驅動封裝資料,封裝到javaVean中</h3>
<form action="${ pageContext.request.contextPath }/regist2Action.action" method="post">
姓名<input type="text" name="user.username"/><br/>
密碼<input type="text" name="user.password"/><br/>
<input type="submit" value="註冊">
</form>
啟動伺服器,執行index.jsp頁面,然後輸入姓名和密碼,點選註冊,在控制檯上輸出如下內容表示封裝資料成功: