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

Struts 1.x 系列教程(12):Validator 內建標準驗證規則速查表

     編輯:Java 相關知識

前言

Validator 框架(Struts 1.2.9)預定義多種驗證規則,於 validator.xml <field> 的 depends 屬性指定。本文整理所有內建驗證器、觸發條件與參數變數,並詳細說明進階 validwhen 邏輯驗證。

標準驗證器速查表

驗證器名稱參數變數觸發條件(驗證失敗時)
required—欄位僅含空白字元
validwhentesttest 條件判斷為 false(見下文)
minlengthminlength字元數小於 minlength
maxlengthmaxlength字元數大於 maxlength
maskmask值不符合指定正則表達式
byte, short, integer, long, float, double—無法轉換為對應數值型別
datedatePattern / datePatternStrict無法依指定格式轉換為日期
intRange, floatRange, doubleRangemin, max數值不在 [min, max] 範圍內
creditCard—非合法信用卡號(Luhn 演算法)
email—非合法 Email 格式
urlallowAllSchemes, allow2Slashes, noFragments, schemes非合法 URL 格式

詳細規格請參考官方文件:Validator 用戶指南

進階:validwhen 邏輯驗證

validwhen 允許以邏輯運算式表達欄位間關係,語法支援:

  • *this* 代表當前欄位值
  • 欄位名直接引用其他欄位值
  • 索引屬性:field3[1]
  • 巢狀屬性:field2.name
  • 運算子:==、!=、<、>、&&(and)、||(or)、括號分組

範例 1:密碼確認

<field property="password1" depends="validwhen">
    <msg name="validwhen" key="error.password1.confirmation" />
    <var>
        <var-name>test</var-name>
        <var-value>(password1 != null) and (*this* == password)</var-value>
    </var>
</field>

含義:password1 不為空且等於 password 欄位值。

範例 2:巢狀與索引屬性比較

<field property="field1" depends="validwhen">
    <msg name="validwhen" key="error.field.message" />
    <var>
        <var-name>test</var-name>
        <var-value>(*this* == field2.name) and (*this* != field3[1])</var-value>
    </var>
</field>

含義:當前值等於 field2.name 且不等於 field3 陣列索引 1 的值。

總結

熟悉內建驗證器可覆蓋 90% 以上表單驗證需求。validwhen 提供強大的跨欄位邏輯驗證能力,配合 mask 正則表達式,幾乎能處理所有業務規則而無需撰寫 Java 驗證碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved