从前台传值
- 属性传值(setter方法注入)
a.jsp页面的name属性值要和action类中的属性完全一致(case sensitive)。
b.action类中的setter方法就是把前台的数据注入到指定的属性中,getter方法是从前台获取属性的值。
c.页面取值:${name属性值} - 域模型
a.创建一个实体类描述页面元素的信息
public class User {
private String id;
private String name;
private Integer age;
private String userName;
private String password;
private String phone;
private String email;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
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;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
b.action类中创建一个引用属性,类型为实体类对象 ,并增加setter/getter方法
public class UserAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private User user;
@Override
public String execute() throws Exception {
return SUCCESS;
}
public void setUser(User user) {
this.user = user;
}
public User getUser() {
return user;
}
}
c.jsp页面的name属性值添加对象约束,eg: user.userName

d.页面取值:${user.userName}
4. model-driven模型
a.创建一个实体类映射页面元素信息
b.action类实现ModelDriven接口,实现getModel()方法,返回model;
public class userAction extends ActionSupport implements ModelDriven<User>{
private User user = new User();
@Override
public String execute(){
return SUCCESS;
}
public User getModel() {
// TODO Auto-generated method stub
return user;
}
}
只要action类中有getXXX()方法,就可以在jsp中获得XXX的值,实体类中没有XXX属性也可以* .例如下面的model就是getModel()中的model。
c.页面取值:${model.userName}