一. 属性驱动
直接在action中声明一些属性,然后生成get/set方法的方式,称为属性驱动,
使用属性驱动封装对象action代码
Action类public class UserAction extends ActionSupport{
UserService us=new UserService();
private ArrayList<User> al;
private String msg;
private User user;
public String add(){
us.add(user);
return "addsuccess";
}
public String list(){
al=us.list();
System.out.println(msg);
return "success";
}
public User getUser() {
return dog;
}
public void setUser(User user) {
this.user= user;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
} }
在jsp页面中form表单属性名要写成 封装的对象.+属性名
jsp页面
<form action="adduser" method="post">
用户名:<input type="text" name="user.uname"/><br/>
密码:<input type="text" name="user.psw"/><br/>
手机号:<input type="text" name="user.phone"/><br/>
<input type="submit" value="新增"/><br/>
</form>
二.模型驱动
先写一个普通的action类,然后实现一个ModelDriven接口,在这个接口中直接把你的User让入泛型中,在生成一个getModel方法,这个方法就会返回一个有值的user对象,这个值是在表单调校后,表单的数据被封装在User对象中,由模型驱动把这个对象通过getModel方法带入我们的action类中,我们就可以再我们的逻辑方法中,直接使用该对象的值。
action类public class UserAction extends ActionSupport implements ModelDriven<User>{
private User user = new User();
public String login(){
return null;
}
@Override
public UserBean getModel() {
return user;
}
}
jsp页面
<form action="loginuser.action" method="post">
用户名:<input type="text" name="uname"/><br>
密 码:<input type="password" name="psw"/><br>
<input type="submit" value="登陆"/><br>
</form>