六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 62|回复: 0

ActionForm中reset()的用法

[复制链接]

升级  40%

4

主题

4

主题

4

主题

童生

Rank: 1

积分
20
 楼主| 发表于 2013-2-7 18:54:25 | 显示全部楼层 |阅读模式
ActionForm中reset()的用法- -
       转自:http://hi.baidu.com/fly_dream/bl ... 7f301100e92844.html   
                                    
这个方法可能被好多人遗忘,但是它确实能解决我们棘手的问题.



     我们写的FormBean必须实现ActionForm的超类,reset方法就是定义在这个超类中的.打开源代码可以看到它实际没做什么. 你要使用它,必须自己实现相应的逻辑.

     reset方法的调用时间是在ActionServlet给它重新赋值的时候.也就是说,当ActionServlet把View层的数据组装好,给FromBean的各个属性赋值之前,会先调用reset方法,然后ActionServlet再把页面的值赋上.

    在处理页面的checkbox的时候,reset方法的作用就表现出来了. 页面上的checkbox在未被选中的时候是不被提交的,在新增的时候还好,你可以通过这个属性是否为null判断这个checkbox是否被选中,但是在修改操作的时候, 如果之前checkbox是被选中的,但是修改的时候你取消了选中, 提交的时候,那么FormBean中的这个属性值就不会被覆盖,还是选中状态的值! 这个时候我们覆写reset方法,就可以解决这个问题.

   例如:

   是否显示:

   FormBean中的reset()可以这样:

   public void reset(ActionMapping arg0, HttpServletRequest arg1) {
      super.reset(arg0, arg1);  
      this.isDiplay="false";
   }

    在每次组装数据前,reset都会把isDiplay置为false,如果页面上被选中,就会再次被设置为true, 如果未被选中还会保持false !
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表