一、ModelDriven根据Action属性的不同将它分为两类:Field-Driven(属性驱动)Action和Model-Driven(模型驱动)Action。
二、Field-Driven(属性驱动)Action,Action拥有自己的属性,这些属性一般是Java的基本类型。表单字段直接和Action的属性对应。
三、实现了modelDriven接口可以在action中直接获得例如User对象,它会将ObjectgetModel()取得的User放到ValueStack中。可以理解为将这个User的属性追加到Action中。
类中属性 private User user;//对象可以在jsp页面中直接通过el表达式进行操作
public User getModel() {//从栈顶找到user对象,用getUser反射获取user,如果是获取loginName,再通过反射用getLoginName
if(user == null){
this.user = new User();
System.out.println(user);
}
return user;
}
该方法返回一个用于接收用户输入数据的对象模型,在这个模型对象中的属性可以直接通过(属性名)userName来访问,而不需要使用(对象名.属性名)user.userName这种格式来访问了,在action也不需要对对象提供getter和setter方法了,但是必须要在action中进行new操作。模型驱动的Action必须实现ModelDriven接口,而且要提供相应的泛型。