struts2 Preparable 接口的使用

问题背景:在一个编辑页面中,如果这个页面中没有将表中所有的字段都用显示表单的形式显示出来,并且提供的修改sql是将所有的字段全部update,那么这个页面中就需要将没有显示出来的字段或者使用lable显示的字段全部使用隐藏域放在编辑页面中,这样做太麻烦了!

那么问题来了,有没有更好的解决办法呢?
有,当然有!struts2的Prepare接口很好的解决了这个问题,确切的说struts2中有一个与之相对应的内置过滤器!

下面来介绍一下,这个接口该如何使用呢?很简单!
1.
随便一个action类,实现了 Preparable 接口
2.
如果编辑方法是 update,那么还需要在添加一个方法:void prepareUpdate()
3.
说一下程序执行中,成员变量中属性的变化
在编辑页面中修改的对象是 users,当点击 修改按钮的时候;
首先执行prepareUpdate() 方法, 在这个方法中,users = 从数据库中获取到新的对象;
然后在执行 update() 方法,这个时候,在页面中有 users 对象 form表单中的属性值(包括空值)会覆盖 prepareUpdate() 方法中users 对象的属性值【prepareUpdate() 获取到的users 和 update()方法中获取到的users 对象是同一个对象!】。这样没覆盖掉的users 属性就是 不存在编辑页面form表单中的属性

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值