由於前端的驗證可能會被繞過或無效,所以在伺服器端必須對提交的資料進行驗證,struts2提供了非常便利的驗證器。通過宣告配置就可以達到伺服器端的驗證。
struts2 預設的***棧中提供了乙個 validation ***,這個***將配置的驗證規則和系統具體的乙個驗證器對應, 而實際上驗證的是那個驗證器. 該檔案位於 com.opensymphony.xwork2.validator.validators 下的 default.xml中配置的位置如:
validator name=」required」 class=」com.opensymphony.xwork2.validator.validators.requiredfieldvalidator」/>
name="age">
type="int">
name="min">20param>
name="max">50param>
age needs to be between $ and $message>
field-validator>
field>
4、該錯誤訊息可以國際化嗎?答案是可以!
在國際化資源檔案 中加入乙個鍵值對:error.int=^^^age needs to be between $ and $
配置驗證提示訊息如下:
key="error.int">
message>.
5、若驗證失敗, 則轉向 input 的那個 result. 所以需要配置 name=input 的 result
6、如何顯示錯誤訊息呢 ?
若使用的是非 ******, 則自動顯示錯誤訊息.
若使用的是 ****** 主題, 則需要 s:fielderror 標籤或直接使用 el 表示式(使用 ognl)或
$
若對乙個字段使用多個驗證器, 預設情況下會執行所有的驗證. 若希望前面的驗證器驗證沒有通過, 後面的就不再驗證, 可以使用短路驗證
type="conversion"
short-circuit="true">
^conversion error occurredmessage>
field-validator>
type="int">
name="min">20param>
name="max">60param>
key="error.int">
message>
field-validator>
關於非欄位驗證: 不是針對於某乙個欄位的驗證.
type="expression">
name="expression">
param>
password is not equals to password2message>
validator>
顯示非欄位驗證的錯誤訊息, 使用 s:actionerror 標籤:
要利用國際化配置檔案,配置中
error.int=$ needs to be between $ and $//age和count是fieldname。
age=姓名
count=數量
詳細分析參見 ppt 159. SprigBoot學習筆記 尚矽谷(1)
1 父專案 2 啟動器 public class target retention retentionpolicy.runtime documented inherited springbootconfiguration enableautoconfiguration componentscan e...
MySQL 尚矽谷 學習筆記1
使用資料庫 use myemployees 1.查詢表中的單個字段 select last name from employees 2.查詢表中的多個字段 select last name,salary,email from employees 3.查詢表中的所有字段 方式1 select empl...
MySQL 尚矽谷 學習筆記1
使用資料庫 use myemployees 1.查詢表中的單個字段 select last name from employees 2.查詢表中的多個字段 select last name,salary,email from employees 3.查詢表中的所有字段 方式1 select empl...