? 創建人:王藝創建時間:2003年6月15日星期日第一步:對象的可視范圍: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。在具體的我也想不出了,還是要大家在應用時多多體會這些特性,這樣才能把架構的威力發揮到最大。