對於每一個客戶請求,Struts framework在處理ActionForm的時候,一般需要經歷如下幾個步驟:
n 檢查Action的映射,確定Action中已經配置了對ActionForm的映射
n 根據name屬性,查找form bean的配置信息
n 檢查Action的formbean的使用範圍,確定在此範圍下,是否已經有此form bean的實例。
n 假如當前範圍下,已經存在了此form bean的實例,而是對當前請求來說,是同一種類型的話,那麼就重用。
n 否則,就重新構建一個form bean的實例
n form bean的reset()方法備調用
n 調用對應的setter方法,對狀態屬性賦值
n 如果validate的屬性北設置爲true,那麼就調用form bean的validate()方法。
n 如果validate()方法沒有返回任何錯誤,控制器將ActionForm作爲參數,傳給Action實例的execute()方法並執行。
注意:直接從ActionFrom類繼承的reset()和validate()方法,並不能實現什麼處理功能,所以有必要自己重新覆蓋。