struts2 值传递分为:属性驱动和模型驱动。
属性驱动就是在页面通过 form 表单设置 name 属性,在表单提交后在 action 中通过相同的名称属性的变量获取提交值。
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;
}
模型驱动就是通过指定的对象获取表单提交的值, struts2 会自动填充对象,在 action 中,我们可以直接通过对象获取单个属性值。
注意:使用模型驱动必须实现 ModelDriven。
private User user = new User();
public User getModel() {
return user;
}
分层体系架构:首先就是逻辑清晰,还有就是协作带来的开发好处。分层开发只能上层调用下层,而下层是不可以调用上层的,同时,下层只会对上层开放接口,这也是面向接口开发带来的好处。
a.属性驱动灵活,准确。模型驱动不灵活,有时候页面提交过来的参数并不属于模型中的属性,此时我们要么使用代理对象,要么就使用属性驱动。
b.模型驱动更符合面向对象的编程风格,它可以把离散的值聚合在一起。