* 首先要從頁面中獲取對應的標簽name屬性的值,在動作類action中聲明同名的屬性,提供get和set方法
?? ?* 要繼承ActionSupport類或者實現Validateable接口
?? ?* 重寫Validateable接口的validate()方法
?? ??? ?* 前提是:要保證setUsername()、validate()、login()方法要按照這個先后順序執行
?? ?* 如果登錄失敗,如何處理:
?? ??? ?* this.addFieldError( key, value);
?? ??? ??? ?* key:錯誤提示字段
?? ??? ??? ?* value:錯誤提示信息
?? ?* 什么時候才是驗證通過?
?? ??? ?* 驗證通過:1、map集合不存在;2、map集合存在并為空
?? ??? ?* 驗證不通過:map集合存在并且不為空
?? ?* 分析需求:
?? ??? ?* 用戶名不能為null ,""
?? ??? ?* 密碼不能為null, "" ,并且密碼的長度6-12之間
?? ?* 針對所有業務方法進行驗證還是針對某個指定業務方法進行驗證?
?? ??? ?* 重寫的validate()方法,針對所有業務方法進行驗證
?? ??? ?* 重寫的validate()方法加上要驗證的指定的業務方法名(業務方法名的首字母大寫),實現針對某個指定的業務方法進行驗證
?? ??? ??? ?* 為什么要這樣進行拼接?因為struts2框架底層拼接,如果不這樣寫,底層就找不到對應方法名
struts2框架驗證(xml方式):
?? ?* 首先要從頁面中獲取對應的標簽name屬性的值,在動作類action中聲明同名的屬性,提供get和set方法
?? ?* 創建一個xml格式驗證文件:
?? ??? ?* 命名方式:ActionClassName-validation.xml,ActionClassName指的是動作類action的名稱
?? ??? ?* <validators>標簽:根元素
?? ??? ?* field:指定action中要校驗的屬性,實際上就是頁面中表單的name屬性的值
?? ??? ??? ?* name:指定頁面中表單的name屬性的值
?? ??? ?* field-validator:指定驗證規則
?? ??? ??? ?* type:指定驗證規則名稱,
?? ??? ??? ??? ??? ?struts2框架提供的驗證規則放在xwork-core-xxx.jar
?? ??? ??? ??? ??? ?下的com\opensymphony\xwork2\validator\validators
?? ??? ??? ??? ??? ?的default.xml配置文件。
?? ??? ?* param:向底層的驗證規則傳遞的參數
?? ??? ?* message:驗證失敗時,提供的錯誤提示信息
?? ?* 如果要對指定方法進行驗證的話:
?? ??? ?* xml驗證文件的命名方式:ActionClassName-ActionName-validation.xml,
?? ??? ??? ??? ??? ??? ??? ??? ?ActionName對應的是struts.xml文件對應的action標簽的name屬性的值
?? ?
???
轉載于:https://www.cnblogs.com/sunfie/p/4704447.html