Struts2笔记06 封装获取表单数据方式

来源:互联网 发布:嘉唯枕头怎么样 知乎 编辑:程序博客网 时间:2024/05/14 17:03

1. 原始方式获取表单数据封装到实体类(User)


2.采用属性封装

使用属性封装获取表单数据到属性里面,不能把数据直接封装到实体类对象里

实现步骤:
(1)在action成员变量位置定义变量
变量名称和表单输入项name属性值一样
(2)生成变量的set方法

表单数据

 <form action="${pageContext.request.contextPath }/form.action" method="post">        用户名:<input type="text" name="username"/><br/>        密 码:<input type="password" name="password"/><br/>        地 址:<input type="text" name="address"/><br/>        <input type="submit" value="提交"/>    </form>

声明表单属性,并生成set方法


   private String username;    private String password;    private String address;    public void setUsername(String username) {        this.username = username;    }    public void setPassword(String password) {        this.password = password;    }    public void setAddress(String address) {        this.address = address;    }    public String execute() throws Exception {        User user = new User();        user.setUsername(username);        user.setPassword(password);        user.setAddress(address);        return NONE;    }


3.模型驱动封装(重点)

使用模型驱动封装可以把数据直接封装到实体类对象里

  实现步骤:
(1)action实现ModelDriven

(2)实现接口里面的方法getModel()
把创建对象返回
(3)在action里创建实体类对象

public class DemoAction1 extends ActionSupport implements ModelDriven<User> {
//创建对象
//前提要求:表单输入项name属性值和实体类属性名称一样    private User user = new User();    public User getUser() {        return user;    }    @Override    public User getModel() {//返回创建的对象        return user;    }    public String execute() throws Exception {        System.out.println(user);        return NONE;    }}


使用模型驱动和属性封装注意问题:
    在一个action中,获取表单数据可以属性封装,使用模型驱动封装,不能同时使用在同一表单数据,如果同时使用只执行模型驱动

4.表达式封装

使用表达式封装可以把数据直接封装到实体类对象里

实现过程:
(1)在action里声明实体类
(2)生成实体类变量的set get 方法
(3)在表单输入项的name属性值里写表达式形式

//声明实体类
    private User user;   //生成实体类变量的set get方法    public User getUser() {        return user;    }    public void setUser(User user) {        this.user = user;    }    public String execute() throws Exception {        System.out.println(user);        return NONE;    }

 <form action="${pageContext.request.contextPath }/form.action" method="post">        用户名:<input type="text" name="user.username"/><br/>        密 码:<input type="password" name="user.password"/><br/>        地 址:<input type="text" name="user.address"/><br/>        <input type="submit" value="提交"/>    </form>





实体类User

 



原创粉丝点击