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

 



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值