在struts2中,前台与action传送数据有两种方式,分别是属性驱动和模型驱动。
1.属性驱动
1、在action中声明属性,属性的名称和页面元素中name属性的值保持一致。
2、action中的属性必须有set和get方法
- package test;
- public class DriverAction2{
- private User user;
- public String execute(){
- return "success";
- }
- public User getUser() {
- return user;
- }
- public void setUser(User user) {
- this.user = user;
- }
- }
- <form action="login.action" method="post">
- 姓名 <input type="text" name="user.username"><br/>
- 密码 <input type="text" name="user.password"><br/>
- 年龄 <input type="text" name="user.age"><br/>
- <input type="submit" value="submit">
- </form>
2.模型驱动
1、action实现一个接口ModelDriver
2、在action中声明一个属性,该属性会封装页面中的数据,并且用new的方法
给该属性创建对象
填充接口中的方法getModel,返回该属性的值
从上图可以看出,ModelDriverInterceptor有两个作用:
1、 当前请求的action必须实现ModelDriver接口
2、 把model对象放入到了栈顶