这一章我们一样来获取数据,看看与上一章有什么不同吧。数据封装也有三种方式。下面我们来一一介绍。

第一种:属性封装。

类就用LoginAction吧。里面有两属性,name,pwd.给这两个属性写上getter和setter.

页面就是用上章的login.jsp,只需将提交地址改了,struts.xml配置配好,就能获取到数据了。关于配置已经在前两章前有介绍,就不多介绍了

那么第二种:模型驱动:action类实现ModelDriven接口,实现ModelDriven接口的getModel方法。

私有化一个对象,getModel方法中返回这个对象。

最后一种 :表达式封装

01在Action类中声明实体类(注意只是声明),

02:生成实体类对象名的set和get的方法,

03:修改表单那么属性值:
name="实体对象名.属性名"(users.username)

三种方式之后还有两种封装方式,封装到List及Map集合。

1.List集合

页面:

Action:

Map集合:
页面:

Action:

其中要注意:在一个action中不能给对同一个表单使用属性封装和模型封装,如果使用只会执行模型驱动封装.

表达式封装和模型封装的相同点以及不同点:

相同点:
都可以把数据封装到实体类中

不同点:
模型封装只能够把数据封装到一个实体类中,在一个action里面只能实现一次ModelDriven的接口所以模型封装只会封装一个到一个实体类中

表达式封装可以吧数据封装到多个对象中

数据封装就上面这些,理论我就没过多介绍了。

最新文章

  1. COGS 2387.[HZOI 2016]2387题解
  2. ruby -- 基础学习(三)设置中国时区时间
  3. TCP 连接建立和断开,以及状态转换
  4. [iOS UI进阶 - 5.0] 手势解锁Demo
  5. C/C++输入输出总结
  6. GDI 对象的释放与内存泄漏的问题研究
  7. Activity生命周期方法调用finish后的不同表现
  8. ap web
  9. JAVA设计模式---模板方法
  10. java线程之创建线程类
  11. Maven把项目依赖的所有jar包都打到同一个jar中
  12. 海康&大华&DSS视频拉流-RTSP转RTMP多媒体播放技术
  13. UBUNTU 16.04 安装AVD "An error occurred while running "android create avd
  14. URL 传递问题
  15. OO第三阶段纪实
  16. HDU 3415 Max Sum of Max-K-sub-sequence【单调队列】
  17. Linux配置中文输入法(搜狗输入法)
  18. django之normalize函数的功能
  19. 开发uniapp必备
  20. IE的双边距Bug以及解决办法

热门文章

  1. js中级小知识2
  2. pytorch入门与实践-2.2
  3. Codeforces 431C - k-Tree - [树形DP]
  4. hash 位运算 练习
  5. ADC裸机程序
  6. java框架之SpringBoot(12)-消息及整合RabbitMQ
  7. vmvare安装vmtools菜单灰色
  8. linux下目录的作用
  9. tensorflow变量
  10. c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.ExitThread(); System.Environment.Exit(0);