struts2封装表单数据

原始方式封装

这里写图片描述

属性封装

  • 直接把表单提交到属性封装的action的属性里
  • 实现步骤
    • 在action类定义属性,属性名和表单的的name属性值是一样的
    • 给属性set方法(主要是提供set方法,get方法可以提供,或者不提供)
  • 使用属性封装,只是将表单的数据封装到了action属性内,没有封装到JavaBean中
    • action
      这里写图片描述
    • 表单

模型驱动封装

  1. 使用模型驱动方式,可以直接把表单的数据封装到实体类的对象中,
    • 表单中的name属性和实体类中的属性对应
  2. 实现步骤

    • action 实现接口ModelDriven
    • 实现接口里面的方法getModel方法
    • 在action里面创建实体类对象

      • action 这里写图片描述
      • 表单这里写图片描述
    • ==注意==

    • 不可以同时使用属性封装和模型驱动封装
    • 如果同时使用了,那么只有模型驱动封装是有效的,属性封装是null

表达式封装(会用)

  • 使用表达式封装可以讲表单数据封装到实体类 的对象里面
    1. 在action里声明实体类
    2. 生成实体类属性的get、set方法这里写图片描述
    3. 在表单输入项的name属性值里面写表达式形式这里写图片描述
  • 表单是封装也是定义属性,提供get、set方法,所以也可以归类为属性封装

模型驱动封装和表达式封装区别

  • 使用模型驱动封装和表达式封装都可以讲数据封装到实体类对象里
  • 不同点:
    • 使用模型驱动只能把数据封装到一个实体类对象中
      • 一个action使用模型驱动,只能封装到一个对象
    • 使用表达式可以将数据封装到不同的实体类对象中
  • 实例:使用表达式封装,将表单数据封装到两个不同的实体类对象中
    • 这里写图片描述
    • 这里写图片描述

封装数据到list集合中

  • 在action中声明list集合
  • 生成list集合的set和get方法这里写图片描述
  • 在表单输入项里面写表达式这里写图片描述

封装数据到map集合中

  • 在action中声明map集合,并且提供set\get方法这里写图片描述
  • 在表单输入项里写表达式