之前的学习中,用到的是属性驱动,就是在action类中有很多的属性字段,并且每个属性都有对应的setter和getter方法。本次学习中涉及到的是模型驱动,在action类上实现ModelDriven接口并给定所需要的类型,在Action中只需要定义一个封装所有数据信息的javabean即可。
先看实例:配置与属性驱动的配置相同。
1、定义一个User类
public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
2、定义的LoginAction类
public class UserAction extends ActionSupport implements ModelDriven<User>{
private User user=new User();
@Override
public User getModel() {//getModel方法自动将提交的数据给user属性赋值
// TODO Auto-generated method stub
return user;
}
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
return SUCCESS;
}
}
属性和模型的比较
1)书写方面,驱动模型实现ModelDriven接口并定义了具体的泛型类型。使用了JavaBean将各个属性封装在具体的类中。重写getModel()方法,返回返回泛型的一个对象。
2)应用方面,驱动模型是面向对象的编程,在具体实现的过程中,如果页面提交的参数不属于模型中的属性时,就没有属性驱动灵活,准确。