JavaWeb框架复习笔记-Struts2(封装表单数据到实体类)

第一种方式-属性驱动封装

创建一个测试类

package com.lfm.Action;

import com.opensymphony.xwork2.ActionSupport;

/**
 * 使用属性驱动封装表单数据到对象里面去
 * ClassName:ShuXingFengZhuangTest
 * Author:LFM
 * Date:2019/6/30 15:38
 **/
public class ShuXingFengZhuangTest extends ActionSupport {

    //定义变量名字,但是要和表单的输入项的name值一样
    private String username;
    private String password;
    private String address;

    //生成getter和setter方法(这样才能获取数据的设置数据)
    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
    @Override
    public String execute() throws Exception {
        System.out.println(username+":"+password+":"+address);
        return NONE;

    }
}

配置好struts.xml文件和jsp文件
在这里插入图片描述
在这里插入图片描述
启动服务器测试一下结果
在这里插入图片描述
在这里插入图片描述
成功实现将表单数据封装到变量里面

第二种-模型驱动封装

首先写一个实体类
在这里插入图片描述
然后写我们的模型驱动Action
在这里插入图片描述
配置好struts.xml和jsp
在这里插入图片描述
在这里插入图片描述
测试运行结果
在这里插入图片描述
在这里插入图片描述
也同样能把表单的数据封装对象里面(这里我重写了toString方法是为了演示效果)

但是要注意以上两种封装方法不能同时使用在同一个表单上,否则只会生效模型驱动封装!

表达式封装(也叫属性封装)

第一步同样是写一个实体类
在这里插入图片描述
写表达式封装Action
在这里插入图片描述
配置struts.xml文件
在这里插入图片描述
配置jsp文件,这里采用表达式封装之后就不同了
在这里插入图片描述
部署服务查看效果
在这里插入图片描述
在这里插入图片描述
可以看到同样可以实现数据封装

这个表达式可以实现封装数据到不同的对象当中

首先同样写多一个实体类
在这里插入图片描述
在Action里面补充
在这里插入图片描述
配置只用改jso页面就行了
在这里插入图片描述
测试效果
在这里插入图片描述
在这里插入图片描述
可以看出实现了一个表单的数据封装到不同的对象里面去了

总结一下:
1:属性驱动封装不能模型驱动封装一起使用
2:模型驱动封装只能封装一个对象
3:使用表达式封装可以封装多个对象,弥补模型驱动封装的不足

猜你喜欢

转载自blog.csdn.net/weixin_42341232/article/details/94328776