ActionForm的生命周期是这样的: “控制器收到的请求”->“创建或再循环ActionForm”->“调用reset()“->“正确保存ActionForm”->“由请求组合ActionForm”->“验证ActionForm”。如果验证不通过返回到输入,否则调用Action的execute()方法。
如果可视范围是request,则reset方法并不是很重要,因为你每次调用时都会产生一个新的ActionForm实例,所以你所操作的ActionForm不会与别人分享同时也就不会受别人的影响;如果可视范围是session,由于在session范围内此ActionForm是唯一的,所以你在session范围内需要用到此ActionForm的地方调用的都是同一个ActionForm,要是你没有在reset中对变量赋初值那么前一次调用ActionForm为它赋的值将在此次调用时有效。你可以把scope设置为session,并且不实现reset方法
如果可视范围是request,则reset方法并不是很重要,因为你每次调用时都会产生一个新的ActionForm实例,所以你所操作的ActionForm不会与别人分享同时也就不会受别人的影响;如果可视范围是session,由于在session范围内此ActionForm是唯一的,所以你在session范围内需要用到此ActionForm的地方调用的都是同一个ActionForm,要是你没有在reset中对变量赋初值那么前一次调用ActionForm为它赋的值将在此次调用时有效。你可以把scope设置为session,并且不实现reset方法
解决方案 »
- struts2 对象传值 接受数据不完整
- JSF中的h:selectBooleanCheckbox是不是不支持局部刷新呢?
- 关于java发送邮件的问题
- 在jsp中,如何传递两个页的内容,不用form形式??
- 如何在JSP中接受处理XML包?
- servlet的配置问题
- 怎样禁止IE里的另存为
- 我刚才写了一个不存在的email代替以前email,现在密码改了!怎么拿回来阿!
- 关于jsp+iis实现文件上传的配置过程
- springmvc和spring security整合。在@Controller层 加@PreAuthorize注释没效果 在@Service层有效果
- validator框架校验时的参数争用问题的解决
- 如果在网页上实现树状的结构,大家有没有实例代码可以给小弟参考一下!
在你的ActionForm里不要实现reset方法!!你就看出区别了!!
如果不调用reset,上一次的值就不会冲掉,那么,这次的值也不会被装入,这个session是不是也太破了,改都改不了.
to nullhue:
不是的,是复选框之类的,标准的,你试试就知道了。
楼主是说你的值不能自动set进去?奇怪,我从来没有遇到过这样的事情。
reset与否很有用哦,比如你设定了初值a=a。默认是session有效的,如果你已经在前面传递了a=b,那么你以后再次调用此actionform时,如果不对a传递值,则a=b,而非a=a。所以解决方法有2:1、每次都传递a;2、实现reset方法,在里面a=a,由于每次都会调用此方法,所以不会受
session的影响。