輸入校驗就是檢查用戶輸入的信息是否合法。
輸入校驗是建立在類型轉換基礎之上的。
Struts2內置校驗
Struts2表單中有一種內置的驗證,但是這種錯誤提示不能提供給用戶看,所以沒有太大用處。
Input返回值,只需在struts.xml中配置一下,錯誤信息要顯示到哪個頁面,即可。Execute方法不用管,當用戶輸入的類型不符合Bean中定義的,Struts2會自動查找input指定的頁面,如果沒有,則會報錯404
404 - No result defined for action tbk.struts.action.RegisterAction and result input
校驗步驟
在Action類中,繼承ActionSupport類,重寫execute()方法和validate()方法。
public void validate() {
//這裏寫null==username 是因爲如果不判斷的話,等username爲空的時候,username.length會報空指針異常
if(null == username || username.length() < 6 || username.length() > 10){
this.addFieldError("username", "username invalid");
}
this.addFieldError()是將錯誤信息放到errorfield中。到頁面上顯示錯誤信息,需要Struts的標籤庫, <s:fielderror></s:fielderror>即可.
輸入校驗是建立在類型轉換基礎之上的。
遇到類型轉換錯誤的時候(也就是說不能進行類型轉換),struts2框架自動生成一條錯誤信息,並且將該錯誤信息放到addFieldError裏面
類型轉換與輸入校驗的流程
1. 首先Struts2對客戶端傳來的數據進行類型轉換
2. 類型轉換完畢後再進行輸入校驗
3. 如果類型轉換和輸入校驗都沒有錯誤發生,那麼進入execute方法(調用商業邏輯)
注意:如果類型轉換不成功,也同樣要進行輸入校驗