@RequiredStringValidator 等 JSR-303 風格,貼近代碼;ActionName-validation.xml,關注點分離,適合複雜規則;validate():對 Action 所有方法生效;validateXxx():針對具體 xxx() 方法生效。| 驗證器 | 用途 |
|---|---|
| required | 字段非 null |
| requiredstring | 字符串非空且長度>0(默認 trim) |
| stringlength | 字符串長度範圍 |
| int/double/date | 類型轉換及範圍校驗 |
| email/url | 格式校驗 |
| regex | 正則表達式匹配 |
| fieldexpression | OGNL 表達式跨字段校驗 |
| visitor | 級聯驗證嵌套對象 |
詳細參考:Struts2 校驗器詳解
Struts2 通過 method="{1}" 動態分發:
<action name="user_*" class="cn.itcast.action.UserAction" method="{1}">
<result name="success">/WEB-INF/page/message.jsp</result>
<result name="input">/WEB-INF/page/addUser.jsp</result>
</action>
對應 Action 方法:
public String add() { ... }
public String update() { ... }
驗證文件命名:
add():UserAction-user_add-validation.xmlupdate():UserAction-user_update-validation.xml規律:Action類名-action名-method名-validation.xml,實現方法級精確驗證,避免無關方法誤觸發校驗。
validate() 中執行業務查詢,保持驗證輕量。