Model-Driven概念与com.opensymphony.xwork.ModelDriven接口没有直接关系的

二、Model-Driven(模型驱动)Action,Action通过get方法暴露一个模型类,表单字段和模型类的属性对应。 Model-Driven概念与com.opensymphony.xwork.ModelDriven接口没有直接关系的。我们的Action不实现com.opensymphony.xwork.ModelDriven接口也有可能是Model-Driven。 例如:

Java代码
  1.     
  2. User.java    
  3.   
  4. public class User{    
  5. private String userName;    
  6. private String password;    
  7. private String email;    
  8. ......    
  9. get();/set();方法    
  10. ..........    
  11. }    
  12.   
  13. RegisterAction.java    
  14. public class RegisterAction implements Action{    
  15. private User user = new User();;    
  16.   
  17. public String execute(); throws Exception{    
  18. //执行用户注册操作    
  19. }    
  20. public User getUser();{    
  21. return user;    
  22. }    
  23. }    
  24.   
  25.   
  26. 页面register.html中会有:    
  27. ......    
  28. <input name="user.userName">    
  29. .......   
 
User.java 

public class User{ 
private String userName; 
private String password; 
private String email; 
...... 
get();/set();方法 
.......... 
} 

RegisterAction.java 
public class RegisterAction implements Action{ 
private User user = new User();; 

public String execute(); throws Exception{ 
//执行用户注册操作 
} 
public User getUser();{ 
return user; 
} 
} 


页面register.html中会有: 
...... 
<input name="user.userName"> 
....... 

Model-Driven会通过OGNL的表达式语言来存取数据。例如:在注册时,表达式语言user.userName将会 执行getUser.setUserName()。 那com.opensymphony.xwork.ModelDriven接口又是做什么的呢? 它会将Object getModel()取得的Model放到ValueStack中。可以理解为将这个Model的属性追加到Action中。它主要是作用是实现类似Struts的FormBean功能。 总结:如果将Model-Driven(模型驱动)Action认为是实现com.opensymphony.xwork.ModelDriven接口的观点是错误的,Model-Driven和com.opensymphony.xwork.ModelDriven接口并没有直接的关系。我们在实际应用中一般是将Model-Driven和Field-Driven结合在一起使用,并不需要将这两个概念完全区分开来。

 

一、Field-Driven字段驱动)Action,Action拥有自己的属性,这些属性一般是Java的基本类型。表单字段直接和Action的属性 对应。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值