struts2 model-driven

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值