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

本文详细介绍了在Struts框架中如何通过属性驱动、模型驱动及表达式封装三种方式,将表单数据封装到对象中。每种方法都有其适用场景和限制,如属性驱动与模型驱动不可同时使用于同一表单,而表达式封装则能实现数据到多个对象的封装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

创建一个测试类

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里面补充
在这里插入图片描述
配置只用改jsp页面就行了
在这里插入图片描述
测试效果
在这里插入图片描述
在这里插入图片描述
可以看出实现了一个表单的数据封装到不同的对象里面去了

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值