Struts2通過攔截器機制封裝了三種接收頁面參數的方式:
1.屬性驅動
2.模型驅動(有兩種)
Domain
ModelDriven
1.屬性驅動:這種方式比較簡單,只要你直接在頁面定義變量並且符合以下兩個規則,就會自動接收值。
規則1:你變量的名字和頁面的name屬性一致
規則2:生成對應的get set方式
Action寫法:
public class ParamAction { private String username; private String password; public String para1(){ System.out.println("用戶名:"+username+"密碼"+password); return "success"; } 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; } }
頁面寫法:
2.Domain:在Action中創建實體類的對象,並且符合以下兩個規則就可以
規則1:頁面的那么屬性寫法:對象名.屬性名
規則2:生成get set方法
Action寫法:
public class ParamAction2 extends ActionSupport { private User user; public String para2(){ System.out.println("用戶名:"+user.getUsername()+"密碼"+user.getPassword()); return "success"; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } }
實體類:get set省略了,自己生成
private String username; private String password;
頁面寫法:
3.實現ModelDriven接口,這個一個泛型接口,泛型中的內容就是你要接受的實體類
規則1:實現ModelDriven這個接口,並實現其getModel方法
規則2:提供一個空的對象供其初始化
規則3:頁面的名字和實體類的屬性名一致
Action寫法:
/** * 1.類要實現ModelDriven這個接口 * @author Administrator * */ public class ParamAction3 implements ModelDriven<User> { //2.提供一個空的對象供其初始化,一定要new出來 private User user =new User(); public String para3(){ System.out.println(user.getUsername()+user.getPassword()); return "success"; } //3.把user返回 public User getModel() { return user; } }
頁面寫法: