Struts2學習筆記——輸入校驗(二)
對于login方法的校驗,可以通過<ActionClassName>-<ActionAliasName>-validation.xml文件來校驗,即RegistAction-login-validation.xml文件進行校驗。同時,RegistAction-validation.xml的校驗規則仍舊對login方法有效。即login方法的校驗規則是Region-validation.xml和RegistAction-login-validation.xml的總和。
如果RegistAction繼承了BaseAction,那么對于BaseAction類的校驗規則也會被RegistAction類所繼承校驗。具體來說,其校驗規則的搜索文件規則如下:
BaseAction-validation.xml
BaseAction-別名-validation.xml
RegistAction-validation.xml
RegistAction-別名-validation.xml
對于Struts2所支持的內建校驗器,我們可以通過xwork.2.1.2.jar中的com/opensymphony/xwork2/validator/validators/default.xml文件查看。
除了配置文件,Struts2也支持Annotation。下面就是使用Annotation配置的RegistAction:











































對于不能通過內置校驗器進行校驗的邏輯,則可通過重寫validate()方法來實現。如果一個Action中存在多個邏輯處理,則需要通過validateXxx()方法來分別進行校驗,其中Xxx代表方法名。如login()方法對應的校驗方法為validateLogin()。
Struts2的輸入校驗流程:
1。類型轉換器負責對字符串的請求參數執行類型轉換,并將這些值設置成Action的屬性值。
2。在執行類型轉換過程中,如果發生異常,則將異常保存到ActionContext中,并由conversionError攔截器負責將其封裝到fieldError里。然后執行第3步;如無異常,直接執行第3步。
3。調用Struts2內置的輸入校驗規則進行輸入校驗
4。通過放射調用validateXxx()方法。
5。調用validate()方法。
6。如果上述都未發生fieldError,將調用Action里處理用戶請求的處理方法;如果出現了fieldError,則轉入input邏輯視圖所指定的視圖資源。
posted on 2010-10-24 15:35 Brian 閱讀(486) 評論(1) 編輯 收藏 所屬分類: Struts2