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

来源:互联网 发布:python os 复制 编辑:程序博客网 时间:2024/06/03 14:42

二、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. .......   

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的属性 对应。

原创粉丝点击