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

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