strus2中获取表单数据有两种方式属性驱动和模型驱动,属性驱动即使用Action的属性元素封装请求参数,而模型驱动是使用javaBean来封装来回请求参数。
一、属性驱动就是使用属性的setter和getter方法获取参数
属性驱动,我们需要在Action中定义与表单元素对应的所有的属性,因而在Action中会出现很多的getter和setter方法,使得Action代码量增加了很多,而且不利于封装和继承,模型驱动使得Action更加简洁,可以使Action更加专注于是控制业务逻辑。
其中属性驱动有两种使用方式:
1、直接使用form表单中的name的setter和getter方法获取参数
2、使用实体映射提交
1、创建一个实体类;
2、在表单中使用 "实体类名称.实体类属性" 来进行对表单的命名(实体名称要和action中创建的实体类的名称相同,例如action中创建 private User u; 那么表单中对应的实体类名称为 u)
3、在action中创建该实体类的setter和getter方法。
4、action中取到该对象则为u.getName();
二、模型驱动就是就是让action实现com.opensymphony. xwork2.ModelDriven接口
ModelDriven接口中只有一个方法:public T getModel();
在action中也不需要为这个模型对象提供JavaBean风格的getter和setter方法。但是必须要在action中进行new操作,ModelDriven要使用泛型
下边是一个例子:
public class LoginAction implements Action,ModelDriven<User>
{
private User user = new User();
@Override
public String execute() throws Exception
{
执行你的逻辑代码
}
@Override
public User getModel()
{
return user;
}
}
对于jsp页面上写的时候就按原来的写法即可,不需要使用类似于 student.sname 的表单写法