首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Struts2 輸入驗證完整指南:三種驗證方式、內置校驗器與方法級精確控制

     編輯:Java 綜合教學

三大驗證方式

  1. 基於註解:@RequiredStringValidator 等 JSR-303 風格,貼近代碼;
  2. 基於 XML 配置:傳統 ActionName-validation.xml,關注點分離,適合複雜規則;
  3. 手動驗證:
    • 重寫 validate():對 Action 所有方法生效;
    • 重寫 validateXxx():針對具體 xxx() 方法生效。

驗證作用域

  • Action 級:針對 Action 所有處理方法;
  • 方法級:僅針對指定 Action 方法。

XML 配置驗證器清單(官方內置)

驗證器用途
required字段非 null
requiredstring字符串非空且長度>0(默認 trim)
stringlength字符串長度範圍
int/double/date類型轉換及範圍校驗
email/url格式校驗
regex正則表達式匹配
fieldexpressionOGNL 表達式跨字段校驗
visitor級聯驗證嵌套對象

詳細參考:Struts2 校驗器詳解

方法級 XML 文件命名規約

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.xml
  • 針對 update():UserAction-user_update-validation.xml

規律:Action類名-action名-method名-validation.xml,實現方法級精確驗證,避免無關方法誤觸發校驗。

最佳實踐建議

  • 簡單規則用註解,複雜/跨字段規則用 XML;
  • 方法級驗證優於 Action 級,減少副作用;
  • 國際化消息鍵統一管理,便於多語言擴展;
  • 避免在 validate() 中執行業務查詢,保持驗證輕量。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved