Struts2的輸入驗證
一.驗證分類: 1. 服務器端驗證(Java代碼來完成驗證(Struts的內置驗證框架,可以完成服務器端驗證))。 2. 客戶端驗證(js驗證——在客戶端執行,執行的時候依賴與客戶度(手動js驗證,jquery驗證框架進行驗證))
二.Struts的內置驗證框架: Struts2中驗證有兩種方式: 1. 手動驗證。 2. 配置驗證框架,自動驗證。
三.內置驗證框架使用步驟: 1. 需要驗證的Action必須繼承自ActionSupport類。 2. 創建驗證配置文件。 要求:a) 配置文件必須和action在同一目錄。 b) 文件名的格式必須是:Action類名-validation.xml(驗證Action中的所有方法) Action類名-訪問Action的名字-validation.xml(只會驗證Action中指定的方法) 3. 查看內置驗證器:xwork-XXXXX.jar目錄中(找到default.xml配置文件)
特別需要注意: 1. 使用了驗證器之後,如果驗證失敗;必須配置<result name=”input”></result>表示驗證失敗之後,跳轉的頁面。
2. 如果jsp頁面中使用了,Struts的標籤;那麼必須讓這個jsp頁面必須經過struts的核心過濾器,進行過濾;否則頁面不能正常解析struts的標籤。
3. 基本數據類型,不能使用Struts的內置驗證,建議使用包裝類。
四.手動驗證步驟: 1. 繼承ActionSupport,重寫validate()方法。 在執行Action中具體的方法之前,會先執行validate()方法;如果有錯誤,則返回input指定的頁面。(有錯誤:super.addFiledError())
手動驗證總結: 1. 可以在實體中的setXxx()方法進行控制。 2. 在validate()方法中進行驗證。
在struts2中進行類型轉換 :
在該字段的實體中
private Integer age;
public Integer getAge() {
return age;
}
public void setAge(Object age) {
String str_age = age+"";
if(str_age.matches("[0-9]+")){
this.age = Integer.parseInt(str_age);
}
else{
this.age = 0;
}
}