struts2模型驱动和属性驱动
struts1中,我们可以将提交表单的参数用FormBean进行封装,传递给我们的Action,在struts2中我们可以使用Model-Driven和Property-Driven进行表单数据的封装,便于我们在Action中直接使用。
1、Property-Driven(属性驱动):是指在jsp页面中的form表单域值与Action中属性名一致,当form被提交到action时,struts2会自动根据表单中的属性调用action中的set方法进行赋值。
eg:
表单:
1 <form action="ceshi/User"> 2 userName:<input type="text" name="userName"><br/> 3 password:<input type="password" name="password"><br/> 4 <input type="submit" value="submit"> 5 </form>
Action:
1 public class userAction extends ActionSupport{ 2 private String userName; 3 private String password; 4 5 public String execute()throws Exception{ 6 System.out.println(getUserName()); 7 return this.SUCCESS; 8 } 9 10 public String getUserName(){ 11 return userName; 12 } 13 14 public String getPassword(){ 15 return password; 16 } 17 18 public void setUserName(String userName){ 19 this.userName = userName; 20 } 21 22 public void setPassword(String password){ 23 this.password = password; 24 } 25 }
2、Model-Driven(模型驱动):struts2中的模型驱动类似struts1中的ActionForm,在struts1中,每个 Action都必须与一个ActionForm相对应,而在Struts2中,每一个action则是都对应一个实体bean,这个bean里面则是封装 了表单所有属性。
eg:
表单:
1 <form action="ceshi/User"> 2 userName:<input type="text" name="userName"><br/> 3 password:<input type="password" name="password"><br/> 4 <input type="submit" value="submit"> 5 </form>
Action:
1 public class userAction extends ActionSupport implements ModelDriven{ 2 private User user = new User(); 3 4 public String execute()throws Exception{ 5 System.out.println(user.getUserName()); 6 return this.SUCCESS; 7 } 8 9 @override 10 public User getModel(){ 11 return user; 12 } 13 14 public User getUser(){ 15 return user; 16 } 17 18 public void setUser(User user){ 19 this.user = user 20 } 21 }
bean:
public class user{
private int id;
private String userName;
private String password;
//以下省略get和set方法
}
3、属性驱动和模型驱动的选取:
属性驱动方便简洁,表单域较少时可用;
表单域较多且定义了相应的bean,可以使用模型驱动
转自:http://blog.sina.com.cn/s/blog_81b914ed01019bu5.html

浙公网安备 33010602011771号