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

 

 

 

 

 

 

  

posted @ 2013-04-10 14:27  little小花花  阅读(228)  评论(0)    收藏  举报