ActionForm用於封裝用戶的請求參數,而請求參數是通過JSP頁面的表單域傳遞過來的。因此應保證ActionForm的參數,與表單域的名字相同。
ActionForm的作用機理:
ActionForm本質上是一種JavaBean,是專門用來傳遞表單數據的DTO(Data Transfer Object,數據傳遞對象)。它包括用於表單數據驗證的validate()方法和用於數據復位的reset()方法。
Struts框架利用ActionForm對象來臨時存放視圖頁面中的表單數據。例如,一個登錄頁面會有一個用戶名輸入框和一個密碼輸入框,以及用來提交登錄請求的按扭。當用戶提交登錄請求後,Struts將 用戶名和密碼兩個輸入域的數據自動填充到相應的ActionForm對象中,然後控制層可以從該ActionForm對象中讀取用戶輸入的表單數據,也可以把來自模型層的數據存放到ActionForm中,然後返回給視圖顯示。
ActionForm有(request)和(session)兩種作用域(scope)。如果ActionForm的作用域設定為request,ActionForm實例將保存在request對象中,像其他保存在request對象中的屬性一樣,僅在當前請求範圍內有效。如果ActionForm的作用域設定為session,那么ActionForm實例將被保存在session對象中,同一個ActionForm實例在整個HTTP會話中有效。