以下为个人看书时心得体会。读书随笔。有不妥之处,望不吝赐教。 

struts2 数据传递分为三种:1:把所有数据放到javaBean属性上。2:把数据放到域对象上。3:ModelDriven。

第一种:可能不太常见,代码如下

 
  
  1. public String execute(){ 
  2.  
  3.            User user = new User(); 
  4.  
  5.            user.setUuid(getUuid());  
  6.  
  7.            user.setName(getName());  
  8.  
  9.            user.setAge(getAge());  
  10.  
  11.            service().create(user);  
  12.  

 因为这种方式在传递数据时,是把数据分散的javaBean属性中。所以在框架中德到数据时,首先创建对象再把琐碎的数据一步一步填充到对象中。 

第二种:比较常见的一种域对象模式,代码如下  

 

 
  
  1. private User user ;  
  2.  
  3. public User getUser(){ 
  4.  
  5.  return user;  
  6.  
  7. }  
  8.  
  9. public void setuser(User user){ 
  10.  
  11.  this.user=user;  
  12.  
  13. }  
 
  
  1. public String execute(){ 
  2.       service.create(user); 
  3.  
  4.  
  5. private User user = new User() 
  6. public Object getModel(){ 
  7.        return user; 
  8. }; 
  public String execute(){     service().create(user);     } 

 其实我们可以把这种形式看成是上面的特殊形式,只不过现在的javaBean中不再放琐碎的数据,

而是放一个复杂的对象,数据的填充由平台自动完成,我们只是把一个已经实例化并且数据已经传好的对象交给create(),

这样使得代码变得简单。但是在jsp上我们就要做出相应牺牲,因为现在的对象深度是User对象,

也就是在javaBean中有了一个新的层次User。代码如下 

 

 
  
  1. <s:textfield name="user.name" lable="name"> 

第三种:它于域对象有所不同的是,他通过getModel()方法应用域对象而不是getter setter方法。这个方法由xwork2.ModelDriven接口声明,首先实现接口。第二步初始化user对象(域对象只要声明即可)。第三步实现getModel()方法.