1.原始方式,获取表单数据,封装到实体类对象中
2.属性封装:1.直接把表单提交数据封装到action的属性里面
实现步骤:(1)在action成员变量位置定义变量,变量名称和表单输入项的name属性值一样
(2)生成变量的set方法
范例:public class DataDemo extends ActionSupport{
//1.定义变量,变量名称和表单输入项的name属性值一样
private String username;
private String password;
//2.生成变量的set和get方法
public String execute()thorws Exception{
System.out.println(username+password);
return NONE;
}
使用属性封装,不能把数据直接封装到实体类对象里面。
3.使用模型驱动封装(重点)
使用
模型驱动封装,直接把表单数据封装到实体类对象里面
实现步骤:(1)action实现接口ModelDriven
(2)实现接口里的方法 getModel方法,把创建对象返回
(3) 在acition里面创建实体类对象
范例:
public class DataDemo extends ActionSupport implements ModelDriven<User>{
//1.创建对象,前提要求,表单输入项name属性值和实体类属性值名称一样
private User user = new User();
@Overrider
public User getModel(){
reutrn user;
}
public String execute()throws Exception{
System.out.println(user);
return NONE;
}
注意:使用模型驱动和属性封装要注意的问题:
(1)在一个action里面,获取表单数据可以属性封装,使用模型驱动封装,不能同时使用属性封装和模型驱动,如果使用,
只用模型驱动生效。
表达式封装
实现步骤:(1)在action里面声明实体类
(2)生成实体类的set和get方法
(3)在表单输入的name属性值里面写表达式形式
//1.声明实体类
private User user;
//2.生成实体类变量的set和get方法
public User getUser(){
return user;
}
public void serUser(User user){
this.user = user;
}
username:<input type="text" name="user.username"/>
password:<input type="text“ name="user.password"/>
比较模型驱动封装和表达式封装
1.使用表达式封装和模型驱动封装都可以封装到实体类里面
2.不同点:
(1)使用模型驱动只能把数据封装到一个实体类对象里面,在一个action里面不能使用模型驱动把数据封装到不同的实体类
(2)使用表达式封装可以把数据封装到不同实体类对象