2005-01-26 Struts中actionform的reset方法

第一步:对象的可视范围: request session application page
Request
:在一个请求周期内有效。就是从你点击页面上的一个按钮开始到服务器返回响应页面为止(包括响应页面)。
Session
:在一个用户与服务器建立连接的整个过程中有效。
Application
:在整个 web 应用程序内有效。
Page
:仅在一个 jsp 页面内有效。

第二步:
ActionForm
在你确定的有效期(可视范围)内是唯一的。

第三步:
在每次为 ActionForm 赋值前调用它的 reset 方法。作用是使 ActionForm 中的值恢复初始状态。在应用中我们可以通过在 reset 中为变量赋初值的方式,使得页面上的某个对象有显示值。

第四步:
可视范围与赋值前的初始化结合。
由于第二步所述特性,如果可视范围是 request ,则 reset 方法并不是很重要,因为你每次调用时都会产生一个新的 ActionForm 实例,所以你所操作的 ActionForm 不会与别人分享同时也就不会受别人的影响;

如果可视范围是 session ,由于在 session 范围内此 ActionForm 是唯一的,所以你在 session 范围内需要用到此 ActionForm 的地方调用的都是同一个 ActionForm ,要是你没有在 reset 中对变量赋初值那么前一次调用 ActionForm 是为它赋的值将在此次调用时有效,这到也没什么。但是,如果恰巧再次调用时你仅仅需要为 ActionForm 中的一部分变量赋值,那么其余的变量将保持上一次得到的值,这样你就得到了一个“新旧混合体”,我想这多半不是你所期望的;

如果可视范围是 application ,那其影响就更是不难理解了,这时不但是你自己会影响你自己,使用应用的其他用户的操作也会影响到你。

第五步:
知道了 reset 方法的作用和 ActionForm scope 内唯一的特性后就为我们灵活处理 ActionForm 的行为提供了基础。比如说你现在需要跨过多个页面收集数据信息,这时你就可以把 scope 设置为 session ,并且不实现 reset 方法――这样在每个页面 put 数据时都不会将之前收集的数据清空,最后在你收集完数据后在 Action 中调用 ActionForm 中你自定义的初始化方法,如: resetField
在具体的我也想不出了,还是要大家在应用时多多体会这些特性,这样才能把架构的威力发挥到最大。

 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值