| 
 | ||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjp.terasoluna.fw.validation.FieldChecks
public class FieldChecks
TERASOLUNAの入力チェック機能で共通に使用される検証ルールクラス。 このクラスが提供する検証ルールとしては、以下のものがある。
このクラスではStrutsのValidWhenを利用した入力チェックメソッドを サポートしていない。相関チェックを行なう場合、各フレームワークで 別途、相関チェックを行う仕組みを用意すること。
この検証ルールクラスを利用するためには、アクションごとに検証内容を記述した バリデーション定義ファイル(validation.xml) を作成する必要がある。
  <formset>
    ・・・
    <!-- 単体のフィールド検証 -->
    <form name="testBean">
      <field property="field"
          depends="required,alphaNumericString,maxlength">
        <arg key="testBean.field" position="0"/>
        <arg key="${var:maxlength}" position="1"/>
        <var>
          <var-name>maxlength</var-name>
          <var-value>10</var-value>
        </var>
      </field>
    </form>
    ・・・
  </formset>
 このクラスの
 validateArraysIndex(
 Object, ValidatorAction, Field, ValidationErrors)
 メソッドを使用することにより、配列・コレクション型の入力チェックが
 可能になる。
例えば、fieldsという配列のプロパティを持つbeanインスタンスに対して、 fields要素に対する必須チェックを行なう場合、validation.xmlのプロパティ名に fieldsと記述する。 実行時には、システム側でfieldsプロパティの配列を0番目から順に走査して、 全要素に対してチェックメソッドを実行する。 実行するルール(validation.xmlのdepends指定)は、ルール名に”Array”を 加えた名前を指定する。
配列・コレクション型の一覧検証に対応するルールは以下の通りである。requiredArrayminLengthArraymaxLengthArraymaskArraybyteArrayshortArrayintegerArraylongArrayfloatArraydoubleArraydateArrayintRangeArraydoubleRangeArrayfloatRangeArraycreditCardArrayemailArrayurlArrayalphaNumericStringArrayhankakuKanaStringArrayhankakuStringArrayzenkakuStringArrayzenkakuKanaStringArraycapAlphaNumericStringArraynumberArraynumericStringArrayprohibitedArraystringLengthArraydateRangeArraybyteRangeArrayルールを追加した場合、配列・コレクション用のメソッドを別途作成する 必要がある。
入力チェックでエラーが検出された場合、以下の情報を返す。
JXPathIndexedBeanWrapperImpl, 
IndexedBeanWrapper| フィールドの概要 | |
|---|---|
| private static org.apache.commons.logging.Log | log本クラスで利用するログ。 | 
| コンストラクタの概要 | |
|---|---|
| FieldChecks() | |
| メソッドの概要 | |
|---|---|
| protected  java.lang.String | extractValue(java.lang.Object bean,
             org.apache.commons.validator.Field field)オブジェクトから検証値を取り出す。 | 
| protected  IndexedBeanWrapper | getIndexedBeanWrapper(java.lang.Object bean)IndexedBeanWrapper実装クラスを取得する。 | 
| protected  java.lang.reflect.Method | getMethod(org.apache.commons.validator.ValidatorAction va,
          java.lang.Class[] paramClass)配列・コレクションの要素を検証するメソッドを取得する。 | 
| protected  java.lang.Class[] | getParamClass(org.apache.commons.validator.ValidatorAction va)検証ルールに渡される引数クラス配列を取得する。 | 
| protected  void | rejectValue(ValidationErrors errors,
            org.apache.commons.validator.Field field,
            org.apache.commons.validator.ValidatorAction va,
            java.lang.Object bean)入力チェックエラーが生じた場合に、エラー情報を、 TERASOLUNA共通のエラーインタフェースに引き渡す。 | 
|  boolean | validateAlphaNumericString(java.lang.Object bean,
                           org.apache.commons.validator.ValidatorAction va,
                           org.apache.commons.validator.Field field,
                           ValidationErrors errors)指定されたフィールドが英数字であることをチェックする。 | 
|  boolean | validateArrayRange(java.lang.Object bean,
                   org.apache.commons.validator.ValidatorAction va,
                   org.apache.commons.validator.Field field,
                   ValidationErrors errors)指定されたフィールドの配列・コレクションの長さが、 指定数の範囲内であることをチェックする。 | 
|  boolean | validateArraysIndex(java.lang.Object bean,
                    org.apache.commons.validator.ValidatorAction va,
                    org.apache.commons.validator.Field field,
                    ValidationErrors errors)指定されたフィールドに一致する全てのプロパティ値をチェックする。 | 
|  boolean | validateByte(java.lang.Object bean,
             org.apache.commons.validator.ValidatorAction va,
             org.apache.commons.validator.Field field,
             ValidationErrors errors)入力値がbyte型に変換可能か検証する。 | 
|  boolean | validateByteRange(java.lang.Object bean,
                  org.apache.commons.validator.ValidatorAction va,
                  org.apache.commons.validator.Field field,
                  ValidationErrors errors)指定されたフィールドのバイト列長が指定した範囲内であることを チェックする。 | 
|  boolean | validateCapAlphaNumericString(java.lang.Object bean,
                              org.apache.commons.validator.ValidatorAction va,
                              org.apache.commons.validator.Field field,
                              ValidationErrors errors)指定されたフィールドが大文字英数字であることをチェックする。 | 
|  boolean | validateDate(java.lang.Object bean,
             org.apache.commons.validator.ValidatorAction va,
             org.apache.commons.validator.Field field,
             ValidationErrors errors)入力値が有効な日付か検証する。 | 
|  boolean | validateDateRange(java.lang.Object bean,
                  org.apache.commons.validator.ValidatorAction va,
                  org.apache.commons.validator.Field field,
                  ValidationErrors errors)日付が指定した範囲内であるかどうかチェックする。 | 
|  boolean | validateDouble(java.lang.Object bean,
               org.apache.commons.validator.ValidatorAction va,
               org.apache.commons.validator.Field field,
               ValidationErrors errors)入力値がdouble型に変換可能か検証する。 | 
|  boolean | validateDoubleRange(java.lang.Object bean,
                    org.apache.commons.validator.ValidatorAction va,
                    org.apache.commons.validator.Field field,
                    ValidationErrors errors)入力値が指定されたdouble型に変換可能であり、 かつ指定された範囲内か検証する。 | 
|  boolean | validateFloat(java.lang.Object bean,
              org.apache.commons.validator.ValidatorAction va,
              org.apache.commons.validator.Field field,
              ValidationErrors errors)入力値がfloat型に変換可能か検証する。 | 
|  boolean | validateFloatRange(java.lang.Object bean,
                   org.apache.commons.validator.ValidatorAction va,
                   org.apache.commons.validator.Field field,
                   ValidationErrors errors)入力値が指定されたfloat型に変換可能であり、 かつ指定された範囲内か検証する。 | 
|  boolean | validateHankakuKanaString(java.lang.Object bean,
                          org.apache.commons.validator.ValidatorAction va,
                          org.apache.commons.validator.Field field,
                          ValidationErrors errors)指定されたフィールドが半角カナ文字列であることをチェックする。 | 
|  boolean | validateHankakuString(java.lang.Object bean,
                      org.apache.commons.validator.ValidatorAction va,
                      org.apache.commons.validator.Field field,
                      ValidationErrors errors)指定されたフィールドが半角文字列であることをチェックする。 | 
|  boolean | validateInteger(java.lang.Object bean,
                org.apache.commons.validator.ValidatorAction va,
                org.apache.commons.validator.Field field,
                ValidationErrors errors)入力値がint型に変換可能か検証する。 | 
|  boolean | validateIntRange(java.lang.Object bean,
                 org.apache.commons.validator.ValidatorAction va,
                 org.apache.commons.validator.Field field,
                 ValidationErrors errors)入力値が指定されたint型に変換可能であり、 かつ指定された範囲内か検証する。 | 
|  boolean | validateLong(java.lang.Object bean,
             org.apache.commons.validator.ValidatorAction va,
             org.apache.commons.validator.Field field,
             ValidationErrors errors)入力値がlong型に変換可能か検証する。 | 
|  boolean | validateMask(java.lang.Object bean,
             org.apache.commons.validator.ValidatorAction va,
             org.apache.commons.validator.Field field,
             ValidationErrors errors)入力値が指定された正規表現に適合するか検証する。 | 
|  boolean | validateMaxLength(java.lang.Object bean,
                  org.apache.commons.validator.ValidatorAction va,
                  org.apache.commons.validator.Field field,
                  ValidationErrors errors)入力値の文字数が指定された最大文字数以下か検証する。 | 
|  boolean | validateMinLength(java.lang.Object bean,
                  org.apache.commons.validator.ValidatorAction va,
                  org.apache.commons.validator.Field field,
                  ValidationErrors errors)入力値の文字数が指定された最小文字数以上か検証する。 | 
|  boolean | validateMultiField(java.lang.Object bean,
                   org.apache.commons.validator.ValidatorAction va,
                   org.apache.commons.validator.Field field,
                   ValidationErrors errors)複数フィールドの相関チェックを行う。 | 
|  boolean | validateNumber(java.lang.Object bean,
               org.apache.commons.validator.ValidatorAction va,
               org.apache.commons.validator.Field field,
               ValidationErrors errors)指定されたフィールドが数値であることをチェックする。 | 
|  boolean | validateNumericString(java.lang.Object bean,
                      org.apache.commons.validator.ValidatorAction va,
                      org.apache.commons.validator.Field field,
                      ValidationErrors errors)指定されたフィールドが半角数字であることをチェックする。 | 
|  boolean | validateProhibited(java.lang.Object bean,
                   org.apache.commons.validator.ValidatorAction va,
                   org.apache.commons.validator.Field field,
                   ValidationErrors errors)指定されたフィールドに入力禁止文字列が混入しているか どうかをチェックする。 | 
|  boolean | validateRequired(java.lang.Object bean,
                 org.apache.commons.validator.ValidatorAction va,
                 org.apache.commons.validator.Field field,
                 ValidationErrors errors)入力値のNull検証と、スペースを除いた入力値の文字列長が0より大きいか 検証する。 | 
|  boolean | validateShort(java.lang.Object bean,
              org.apache.commons.validator.ValidatorAction va,
              org.apache.commons.validator.Field field,
              ValidationErrors errors)入力値がshort型に変換可能か検証する。 | 
|  boolean | validateStringLength(java.lang.Object bean,
                     org.apache.commons.validator.ValidatorAction va,
                     org.apache.commons.validator.Field field,
                     ValidationErrors errors)指定されたフィールドの文字列長が一致していることをチェックする。 | 
|  boolean | validateUrl(java.lang.Object bean,
            org.apache.commons.validator.ValidatorAction va,
            org.apache.commons.validator.Field field,
            ValidationErrors errors)指定されたフィールドがURL形式かどうかチェックする。 | 
|  boolean | validateZenkakuKanaString(java.lang.Object bean,
                          org.apache.commons.validator.ValidatorAction va,
                          org.apache.commons.validator.Field field,
                          ValidationErrors errors)指定されたフィールドが全角カタカナ文字列で あることをチェックする。 | 
|  boolean | validateZenkakuString(java.lang.Object bean,
                      org.apache.commons.validator.ValidatorAction va,
                      org.apache.commons.validator.Field field,
                      ValidationErrors errors)指定されたフィールドが全角文字列であることをチェックする。 | 
| クラス java.lang.Object から継承されたメソッド | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| フィールドの詳細 | 
|---|
private static org.apache.commons.logging.Log log
| コンストラクタの詳細 | 
|---|
public FieldChecks()
| メソッドの詳細 | 
|---|
public boolean validateRequired(java.lang.Object bean,
                                org.apache.commons.validator.ValidatorAction va,
                                org.apache.commons.validator.Field field,
                                ValidationErrors errors)
bean - 検査対象のJavaBeanインスタンスva - 検証中のValidatorActionインスタンス。field - 検証中のFieldインスタンス。errors - 検証エラーが発生した場合、
 エラー情報を格納するオブジェクト。
trueを返す。
 検証エラーがある場合、falseを返す。
public boolean validateMask(java.lang.Object bean,
                            org.apache.commons.validator.ValidatorAction va,
                            org.apache.commons.validator.Field field,
                            ValidationErrors errors)
                     throws org.apache.commons.validator.ValidatorException
以下は、文字列が半角英数字であるときのみtrueを返却する 検証の設定例である。
 <form name="sample">
  ・・・
  <field property="maskField"
      depends="mask">
    <arg key="sample.escape" position="0"/>
    <var>
      <var-name>mask</var-name>
      <var-value>^([0-9]|[a-z]|[A-Z])*$</var-value>
    </var>
  </field>
  ・・・
 </form>
 | var-name | var-value | ||
| mask | 正規表現 | true | 入力文字列が指定された正規表現に合致するときは trueが返却される。指定されない場合はValidatorException
       がスローされる。 | 
bean - 検査対象のJavaBeanインスタンスva - 検証中のValidatorActionインスタンス。field - 検証中のFieldインスタンス。errors - 検証エラーが発生した場合、
 エラー情報を格納するオブジェクト。
trueを返す。
 検証エラーがある場合、falseを返す。
org.apache.commons.validator.ValidatorException - 設定ファイルからmask(正規表現)の値が
 取得できない場合にスローされる。
public boolean validateByte(java.lang.Object bean,
                            org.apache.commons.validator.ValidatorAction va,
                            org.apache.commons.validator.Field field,
                            ValidationErrors errors)
bean - 検査対象のJavaBeanインスタンスva - 検証中のValidatorActionインスタンス。field - 検証中のFieldインスタンス。errors - 検証エラーが発生した場合、
 エラー情報を格納するオブジェクト。
trueを返す。
 検証エラーがある場合、falseを返す。
public boolean validateShort(java.lang.Object bean,
                             org.apache.commons.validator.ValidatorAction va,
                             org.apache.commons.validator.Field field,
                             ValidationErrors errors)
bean - 検査対象のJavaBeanインスタンスva - 検証中のValidatorActionインスタンス。field - 検証中のFieldインスタンス。errors - 検証エラーが発生した場合、
 エラー情報を格納するオブジェクト。
trueを返す。
 検証エラーがある場合、falseを返す。
public boolean validateInteger(java.lang.Object bean,
                               org.apache.commons.validator.ValidatorAction va,
                               org.apache.commons.validator.Field field,
                               ValidationErrors errors)
bean - 検査対象のJavaBeanインスタンスva - 検証中のValidatorActionインスタンス。field - 検証中のFieldインスタンス。errors - 検証エラーが発生した場合、
 エラー情報を格納するオブジェクト。
trueを返す。
 検証エラーがある場合、falseを返す。
public boolean validateLong(java.lang.Object bean,
                            org.apache.commons.validator.ValidatorAction va,
                            org.apache.commons.validator.Field field,
                            ValidationErrors errors)
bean - 検査対象のJavaBeanインスタンスva - 検証中のValidatorActionインスタンス。field - 検証中のFieldインスタンス。errors - 検証エラーが発生した場合、
 エラー情報を格納するオブジェクト。
trueを返す。
 検証エラーがある場合、falseを返す。
public boolean validateFloat(java.lang.Object bean,
                             org.apache.commons.validator.ValidatorAction va,
                             org.apache.commons.validator.Field field,
                             ValidationErrors errors)
bean - 検査対象のJavaBeanインスタンスva - 検証中のValidatorActionインスタンス。field - 検証中のFieldインスタンス。errors - 検証エラーが発生した場合、
 エラー情報を格納するオブジェクト。
trueを返す。
 検証エラーがある場合、falseを返す。
public boolean validateDouble(java.lang.Object bean,
                              org.apache.commons.validator.ValidatorAction va,
                              org.apache.commons.validator.Field field,
                              ValidationErrors errors)
bean - 検査対象のJavaBeanインスタンスva - 検証中のValidatorActionインスタンス。field - 検証中のFieldインスタンス。errors - 検証エラーが発生した場合、
 エラー情報を格納するオブジェクト。
trueを返す。
 検証エラーがある場合、falseを返す。
public boolean validateDate(java.lang.Object bean,
                            org.apache.commons.validator.ValidatorAction va,
                            org.apache.commons.validator.Field field,
                            ValidationErrors errors)
                     throws org.apache.commons.validator.ValidatorException
fieldに「datePattern」変数が定義されている場合、
 java.text.SimpleDateFormatクラスを
 利用したフォーマットの検証が行われる。
fieldに「datePatternStrict」変数が定義されている場合、
 java.text.SimpleDateFormatクラスを利用したフォーマットと
 桁数の検証が行われる。
 例えば、'2/12/1999'は'MM/dd/yyyy'形式のフォーマットにすると
 月(Month)が2桁でないため、検証エラーとなる。
「datePattern」変数と、「datePatternStrict」変数の両方が指定された 場合、「datePattern」変数が優先して使用される。 「datePattern」変数と、「datePatternStrict」変数の両方が指定されていない 場合、例外が発生する。また、日付パターンに無効な文字列が含まれている 場合も例外が発生する
フォーマット時には必ず「setLenient=false」が設定されるため、 2000/02/31のような存在しない日付は、いずれの場合も許容されない。
以下は、文字列がyyyy/MM/dd型の日付パターンに合致することを検証 する場合の設定例である。
 <form name="sample">
  ・・・
  <field property="dateField"
      depends="date">
    <arg key="sample.dateField" position="0"/>
    <var>
      <var-name>datePattern</var-name>
      <var-value>yyyy/MM/dd</var-value>
    </var>
  </field>
  ・・・
 </form>
 | var-name | var-value | ||
| datePattern | 日付パターン | false | 日付パターンを指定する。入力値の桁数チェックは行わない。 たとえば、日付パターンがyyyy/MM/ddの場合、2001/1/1はエラーにならない。 datePatternとdatePatternStrictが両方指定されている場合は、 datePatternが優先して使用される。 | 
| datePatternStrict | 日付パターン | false | 日付パターンを指定する。入力値の桁数が、 指定された日付パターンの桁数に合致するかのチェックを行う。 たとえば、日付パターンがyyyy/MM/ddの場合、2001/1/1はエラーになる。 datePatternとdatePatternStrictが両方指定されている場合は、 datePatternが優先して使用される。 | 
bean - 検査対象のJavaBeanインスタンスva - 検証中のValidatorActionインスタンス。field - 検証中のFieldインスタンス。errors - 検証エラーが発生した場合、
 エラー情報を格納するオブジェクト。
trueを返す。
 検証エラーがある場合、falseを返す。
org.apache.commons.validator.ValidatorException - validation定義ファイルの設定ミスがあった場合
 スローされる例外。
public boolean validateIntRange(java.lang.Object bean,
                                org.apache.commons.validator.ValidatorAction va,
                                org.apache.commons.validator.Field field,
                                ValidationErrors errors)
                         throws org.apache.commons.validator.ValidatorException
以下は、文字列が10から100までの範囲内の数値であるときのみ trueを返却する検証の設定例である。
 <form name="sample">
  ・・・
  <field property="intField"
      depends="intRange">
    <arg key="sample.intField" position="0"/>
    <var>
      <var-name>intRangeMin</var-name>
      <var-value>10</var-value>
    </var>
    <var>
      <var-name>intRangeMax</var-name>
      <var-value>100</var-value>
    </var>
  </field>
  ・・・
 </form>
 | var-name | var-value | ||
| intRangeMin | 最小値 | false | 範囲指定の最小値を設定する。設定しない場合、Integerの最小値が 指定される。 数値以外の文字列が入力された場合、例外がスローされる。 | 
| intRangeMax | 最大値 | false | 範囲指定の最大値を設定する。設定しない場合、Integerの最大値が 指定される。 数値以外の文字列が入力された場合、例外がスローされる。 | 
bean - 検査対象のJavaBeanインスタンスva - 検証中のValidatorActionインスタンス。field - 検証中のFieldインスタンス。errors - 検証エラーが発生した場合、
 エラー情報を格納するオブジェクト。
trueを返す。
 検証エラーがある場合、falseを返す。
org.apache.commons.validator.ValidatorException - validation定義ファイルの設定ミスがあった場合
 スローされる例外。
public boolean validateDoubleRange(java.lang.Object bean,
                                   org.apache.commons.validator.ValidatorAction va,
                                   org.apache.commons.validator.Field field,
                                   ValidationErrors errors)
                            throws org.apache.commons.validator.ValidatorException
以下は、文字列が10から100までの範囲内の数値であるときのみ trueを返却する検証の設定例である。
 <form name="sample">
  ・・・
  <field property="doubleField"
      depends="doubleRange">
    <arg key="sample.doubleField" position="0"/>
    <var>
      <var-name>doubleRangeMin</var-name>
      <var-value>10.0</var-value>
    </var>
    <var>
      <var-name>doubleRangeMax</var-name>
      <var-value>100.0</var-value>
    </var>
  </field>
  ・・・
 </form>
 | var-name | var-value | ||
| doubleRangeMin | 最小値 | false | 範囲指定の最小値を設定する。設定しない場合、Doubleの最小値が 指定される。 数値以外の文字列が入力された場合、例外がスローされる。 | 
| doubleRangeMax | 最大値 | false | 範囲指定の最大値を設定する。設定しない場合、Doubleの最大値が 指定される。 数値以外の文字列が入力された場合、例外がスローされる。 | 
bean - 検査対象のJavaBeanインスタンスva - 検証中のValidatorActionインスタンス。field - 検証中のFieldインスタンス。errors - 検証エラーが発生した場合、
 エラー情報を格納するオブジェクト。
trueを返す。
 検証エラーがある場合、falseを返す。
org.apache.commons.validator.ValidatorException - validation定義ファイルの設定ミスがあった場合
 スローされる例外。
public boolean validateFloatRange(java.lang.Object bean,
                                  org.apache.commons.validator.ValidatorAction va,
                                  org.apache.commons.validator.Field field,
                                  ValidationErrors errors)
                           throws org.apache.commons.validator.ValidatorException
以下は、文字列が10から100までの範囲内の数値であるときのみ trueを返却する検証の設定例である。
 <form name="sample">
  ・・・
  <field property="floatField"
      depends="floatRange">
    <arg key="sample.floatField" position="0"/>
    <var>
      <var-name>floatRangeMin</var-name>
      <var-value>10</var-value>
    </var>
    <var>
      <var-name>floatRangeMax</var-name>
      <var-value>100</var-value>
    </var>
  </field>
  ・・・
 </form>
 | var-name | var-value | ||
| floatRangeMin | 最小値 | false | 範囲指定の最小値を設定する。設定しない場合、Floatの最小値が 指定される。 数値以外の文字列が入力された場合、例外がスローされる。 | 
| floatRangeMax | 最大値 | false | 範囲指定の最大値を設定する。設定しない場合、Floatの最大値が 指定される。 数値以外の文字列が入力された場合、例外がスローされる。 | 
bean - 検査対象のJavaBeanインスタンスva - 検証中のValidatorActionインスタンス。field - 検証中のFieldインスタンス。errors - 検証エラーが発生した場合、
 エラー情報を格納するオブジェクト。
trueを返す。
 検証エラーがある場合、falseを返す。
org.apache.commons.validator.ValidatorException - validation定義ファイルの設定ミスがあった場合
 スローされる例外。
public boolean validateMaxLength(java.lang.Object bean,
                                 org.apache.commons.validator.ValidatorAction va,
                                 org.apache.commons.validator.Field field,
                                 ValidationErrors errors)
                          throws org.apache.commons.validator.ValidatorException
以下は、文字列が10文字以下であるときのみ trueを返却する検証の設定例である。
 <form name="sample">
  ・・・
  <field property="stringField"
      depends="maxLength">
    <arg key="sample.stringField" position="0"/>
    <var>
      <var-name>maxlength</var-name>
      <var-value>10</var-value>
    </var>
  </field>
  ・・・
 </form>
 | var-name | var-value | ||
| maxlength | 最大文字数 | true | 文字列の最大文字数を設定する。 数値以外の文字列が入力された場合、例外がスローされる。 | 
bean - 検査対象のJavaBeanインスタンスva - 検証中のValidatorActionインスタンス。field - 検証中のFieldインスタンス。errors - 検証エラーが発生した場合、
 エラー情報を格納するオブジェクト。
trueを返す。
 検証エラーがある場合、falseを返す。
org.apache.commons.validator.ValidatorException - validation定義ファイルの設定ミスがあった場合
 スローされる例外。
public boolean validateMinLength(java.lang.Object bean,
                                 org.apache.commons.validator.ValidatorAction va,
                                 org.apache.commons.validator.Field field,
                                 ValidationErrors errors)
                          throws org.apache.commons.validator.ValidatorException
以下は、文字列が10文字以上であるときのみ trueを返却する検証の設定例である。
 <form name="sample">
  ・・・
  <field property="stringField"
      depends="minLength">
    <arg key="sample.stringField" position="0"/>
    <var>
      <var-name>minlength</var-name>
      <var-value>10</var-value>
    </var>
  </field>
  ・・・
 </form>
 | var-name | var-value | ||
| minlength | 最小文字数 | true | 文字列の最小文字数を設定する。 数値以外の文字列が入力された場合、例外がスローされる。 | 
bean - 検査対象のJavaBeanインスタンスva - 検証中のValidatorActionインスタンス。field - 検証中のFieldインスタンス。errors - 検証エラーが発生した場合、
 エラー情報を格納するオブジェクト。
trueを返す。
 検証エラーがある場合、falseを返す。
org.apache.commons.validator.ValidatorException - validation定義ファイルの設定ミスがあった場合
 スローされる例外。
public boolean validateAlphaNumericString(java.lang.Object bean,
                                          org.apache.commons.validator.ValidatorAction va,
                                          org.apache.commons.validator.Field field,
                                          ValidationErrors errors)
^([0-9]|[a-z]|[A-Z])*$を使用する。
 チェックに引っかかった場合は、エラー情報をerrorsに追加し、
 falseを返却する。
bean - 検査対象のJavaBeanインスタンスva - Validatorにより用意されたValidatorActionfield - フィールドインスタンスerrors - エラー
public boolean validateCapAlphaNumericString(java.lang.Object bean,
                                             org.apache.commons.validator.ValidatorAction va,
                                             org.apache.commons.validator.Field field,
                                             ValidationErrors errors)
bean - 検査対象のJavaBeanインスタンスva - Validatorにより用意されたValidatorActionfield - フィールドインスタンスerrors - エラー
public boolean validateNumber(java.lang.Object bean,
                              org.apache.commons.validator.ValidatorAction va,
                              org.apache.commons.validator.Field field,
                              ValidationErrors errors)
                       throws org.apache.commons.validator.ValidatorException
まず、入力された文字列を用い、BigDecimal 型を生成する ここで生成不可能ならばエラー処理を行なう。 次に整数部の桁数が指定されている場合に、桁数の確認を行う。 validation.xml で isAccordedInteger() が "true" 指定されている場合のみ 整数桁数の同一チェックが行われる。 チェックに引っかかった場合は、エラー処理を行なう。 最後に小数部の桁数が指定されている場合に、桁数の確認を行う。 validation.xmlでisAccordedScaleが"true"である場合のみ 小数桁数の同一チェックが行われる。
下記は、整数部3、小数部2である数値を検証する例である。
 <form name="sample">
  ・・・
  <field property="numberField"
      depends="number">
    <arg key="sample.numberField" position="0"/>
    <var>
      <var-name>integerLength</var-name>
      <var-value>3</var-value>
    </var>
    <var>
      <var-name>scale</var-name>
      <var-value>2</var-value>
    </var>
    <var>
      <var-name>isAccordedInteger</var-name>
      <var-value>true</var-value>
    </var>
    <var>
      <var-name>isAccordedScale</var-name>
      <var-value>true</var-value>
    </var>
  </field>
  ・・・
 </form>
 | var-name | var-value | ||
| integerLength | 整数部桁数 | false | 整数の桁数を設定する。 isAccordedInteger指定が
       無いときは、指定桁数以内の検証を行う。
       省略時は、int型の最大値が指定される。
       非数値を設定した場合、例外がスローされる。 | 
| scale | 小数部桁数 | false | 小数値の桁数を設定する、 isAccordedScale指定が
       無いときは、指定桁数以内の検証を行う。
       省略時は、int型の最大値が指定される。
       非数値を設定した場合、例外がスローされる。 | 
| isAccordedInteger | 整数桁数一致チェック | false | trueが指定されたとき、整数桁数の一致チェックが
        行なわれる。省略時、true以外の文字列が設定された時は
        桁数以内チェックとなる。 | 
| isAccordedScale | 小数桁数一致チェック | false | trueが指定されたとき、小数桁数の一致チェックが
        行なわれる。省略時、true以外の文字列が設定された時は
        桁数以内チェックとなる。 | 
bean - 検査対象のJavaBeanインスタンスva - Validatorにより用意されたValidatorActionfield - フィールドインスタンスerrors - エラー
org.apache.commons.validator.ValidatorException - validation定義ファイルの設定ミスがあった場合
 スローされる例外。
public boolean validateHankakuKanaString(java.lang.Object bean,
                                         org.apache.commons.validator.ValidatorAction va,
                                         org.apache.commons.validator.Field field,
                                         ValidationErrors errors)
bean - 検査対象のJavaBeanインスタンスva - Validatorにより用意されたValidatorActionfield - フィールドインスタンスerrors - エラー
public boolean validateHankakuString(java.lang.Object bean,
                                     org.apache.commons.validator.ValidatorAction va,
                                     org.apache.commons.validator.Field field,
                                     ValidationErrors errors)
bean - 検査対象のJavaBeanインスタンスva - Validatorにより用意されたValidatorActionfield - フィールドインスタンスerrors - エラー
public boolean validateZenkakuString(java.lang.Object bean,
                                     org.apache.commons.validator.ValidatorAction va,
                                     org.apache.commons.validator.Field field,
                                     ValidationErrors errors)
bean - 検査対象のJavaBeanインスタンスva - Validatorにより用意されたValidatorActionfield - フィールドインスタンスerrors - エラー
public boolean validateZenkakuKanaString(java.lang.Object bean,
                                         org.apache.commons.validator.ValidatorAction va,
                                         org.apache.commons.validator.Field field,
                                         ValidationErrors errors)
bean - 検査対象のJavaBeanインスタンスva - Validatorにより用意されたValidatorActionfield - フィールドインスタンスerrors - エラー
public boolean validateProhibited(java.lang.Object bean,
                                  org.apache.commons.validator.ValidatorAction va,
                                  org.apache.commons.validator.Field field,
                                  ValidationErrors errors)
                           throws org.apache.commons.validator.ValidatorException
以下は、禁止文字列チェックの設定例である。
 <form name="sample">
  ・・・
  <field property="stringField"
      depends="prohibited">
    <arg key="sample.stringField" position="0"/>
    <var>
      <var-name>chars</var-name>
      <var-value>!"#$%&'()<></var-value>
    </var>
  </field>
  ・・・
 </form>
 | var-name | var-value | ||
| chars | 入力禁止キャラクタ | true | 入力を禁止する文字。設定されない場合は、ValidatorException がスローされる。 | 
bean - 検査対象のJavaBeanインスタンスva - Validatorにより用意されたValidatorActionfield - フィールドインスタンスerrors - エラー
org.apache.commons.validator.ValidatorException - 設定ファイルからcharsの値が取得できない
 場合にスローされる。
public boolean validateNumericString(java.lang.Object bean,
                                     org.apache.commons.validator.ValidatorAction va,
                                     org.apache.commons.validator.Field field,
                                     ValidationErrors errors)
bean - 検査対象のJavaBeanインスタンスva - Validatorにより用意されたValidatorActionfield - フィールドインスタンスerrors - エラー
public boolean validateStringLength(java.lang.Object bean,
                                    org.apache.commons.validator.ValidatorAction va,
                                    org.apache.commons.validator.Field field,
                                    ValidationErrors errors)
                             throws org.apache.commons.validator.ValidatorException
以下は、文字列長が5であるときのみtrueを返却する 検証の設定例である。
 <form name="sample">
  ・・・
  <field property="stringField"
      depends="stringLength">
    <arg key="sample.stringField" position="0"/>
    <var>
      <var-name>stringLength</var-name>
      <var-value>5</var-value>
    </var>
  </field>
  ・・・
 </form>
 | var-name | var-value | ||
| stringLength | 入力文字列長 | false | 入力文字列長を指定する。
        省略時は、 int型の最大値が指定される。 | 
bean - 検査対象のJavaBeanインスタンスva - Validatorにより用意されたValidatorActionfield - フィールドインスタンスerrors - エラー
org.apache.commons.validator.ValidatorException - validation定義ファイルの設定ミスがあった場合
 スローされる例外。
public boolean validateArrayRange(java.lang.Object bean,
                                  org.apache.commons.validator.ValidatorAction va,
                                  org.apache.commons.validator.Field field,
                                  ValidationErrors errors)
                           throws org.apache.commons.validator.ValidatorException
以下は、配列・コレクションの長さが4〜7であるときのみtrueを返却する 検証の設定例である。
 <form name="sample">
  ・・・
  <field property="arrayField"
      depends="arrayRange">
    <arg key="sample.arrayField" position="0"/>
    <var>
      <var-name>minArrayLength</var-name>
      <var-value>4</var-value>
    </var>
    <var>
      <var-name>maxArrayLength</var-name>
      <var-value>7</var-value>
    </var>
  </field>
  ・・・
 </form>
 | var-name | var-value | ||
| minArrayLength | 最小配列数 | false | 配列の最小配列数を指定する。 最小配列数の指定がない場合、0が指定される。 | 
| maxArrayLength | 最大配列数 | false | 配列の最大配列数を指定する。
        最大配列数の指定がない場合、 int型の最大値が指定される。 | 
bean - 検査対象のJavaBeanインスタンスva - Validatorにより用意されたValidatorActionfield - フィールドインスタンスerrors - エラー
org.apache.commons.validator.ValidatorException - validation定義ファイルの設定ミスがあった場合
 スローされる例外。
public boolean validateUrl(java.lang.Object bean,
                           org.apache.commons.validator.ValidatorAction va,
                           org.apache.commons.validator.Field field,
                           ValidationErrors errors)
以下は、HTTP、FTPプロトコル指定可能、ダブルスラッシュ指定可能、 URLの分割可能である検証の設定例である。
 <form name="sample">
  ・・・
  <field property="date"
      depends="url">
    <arg key="label.date" position="0"/>
    <var>
      <var-name>allowallschemes</var-name>
      <var-value>false</var-value>
    </var>
    <var>
      <var-name>allow2slashes</var-name>
      <var-value>true</var-value>
    </var>
    <var>
      <var-name>nofragments</var-name>
      <var-value>false</var-value>
    </var>
    <var>
      <var-name>schemes</var-name>
      <var-value>http,ftp</var-value>
    </var>
  </field>
  ・・・
 </form>
 | var-name | var-value | ||
| allowallschemes | true(or false) | false | 全てのスキームを許可するか判断するフラグ。デフォルトfalse。 | 
| allow2slashes | true(or false) | false | ダブルスラッシュを許可するか判断するフラグ。デフォルトfalse。 | 
| nofragments | true(or false) | false | URL分割禁止か判断するフラグ。デフォルトfalse。 | 
| schemes | プロトコル | false | 許可するスキーム。複数ある場合はカンマ区切りで指定。 デフォルトはhttp, https, ftp。 | 
bean - 検査対象のJavaBeanインスタンスva - Validatorにより用意されたValidatorActionfield - フィールドインスタンスerrors - エラー
public boolean validateByteRange(java.lang.Object bean,
                                 org.apache.commons.validator.ValidatorAction va,
                                 org.apache.commons.validator.Field field,
                                 ValidationErrors errors)
                          throws org.apache.commons.validator.ValidatorException
以下は、バイト列長が5以上、10以下であるときのみ true を返却する検証の設定例である。
 <form name="sample">
  ・・・
  <field property="stringField"
      depends="byteRange">
    <arg key="sample.stringField" position="0"/>
    <var>
      <var-name>maxByteLength</var-name>
      <var-value>10</var-value>
    </var>
    <var>
      <var-name>minByteLength</var-name>
      <var-value>5</var-value>
    </var>
    <var>
      <var-name>encoding</var-name>
      <var-value>Windows-31J</var-value>
    </var>
  </field>
  ・・・
 </form>
 | var-name | var-value | ||
| maxByteLength | 最大バイト数 | false | 入力文字列バイト長を検証するための最大バイト長。
        省略時は、 int型の最大値が指定される。 | 
| minByteLength | 最小バイト数 | false | 入力文字列バイト長を検証するための最小バイト長。 省略時は、0が指定される。 | 
| encoding | 文字エンコーディング | false | 入力文字をバイト列に変換する際に使用する文字エンコーディング。 省略された場合はVMのデフォルトエンコーディングが使用される。 | 
bean - 検査対象のオブジェクトva - Validatorにより用意されたValidatorActionfield - フィールドオブジェクトerrors - エラー
org.apache.commons.validator.ValidatorException - validation定義ファイルの設定ミスがあった場合
 スローされる例外。
public boolean validateDateRange(java.lang.Object bean,
                                 org.apache.commons.validator.ValidatorAction va,
                                 org.apache.commons.validator.Field field,
                                 ValidationErrors errors)
                          throws org.apache.commons.validator.ValidatorException
以下は、日付が2000/01/01から2010/12/31の範囲内であるかどうかの 検証の設定例である。
 <form name="sample">
  ・・・
  <field property="date"
      depends="dateRange">
    <arg key="date" position="0"/>
    <var>
      <var-name>startDate</var-name>
      <var-value>2000/01/01</var-value>
    </var>
    <var>
      <var-name>endDate</var-name>
      <var-value>2010/12/31</var-value>
    </var>
  </field>
  ・・・
 </form>
 | var-name | var-value | ||
| startDate | 開始日付 | false | 日付範囲の開始の閾値となる日付。 日付パターンで指定した形式で設定すること。 | 
| endDate | 終了日付 | false | 日付範囲の終了の閾値となる日付。 日付パターンで指定した形式で設定すること。 | 
| datePattern | 日付パターン | false | 日付パターンを指定する。入力値の桁数チェックは行わない。 たとえば、日付パターンがyyyy/MM/ddの場合、2001/1/1はエラーにならない。 datePatternとdatePatternStrictが両方指定されている場合は、 datePatternが優先して使用される。 | 
| datePatternStrict | 日付パターン | false | 日付パターンを指定する。入力値の桁数が、 指定された日付パターンの桁数に合致するかのチェックを行う。 たとえば、日付パターンがyyyy/MM/ddの場合、2001/1/1はエラーになる。 datePatternとdatePatternStrictが両方指定されている場合は、 datePatternが優先して使用される。 | 
bean - 検査対象のオブジェクトva - Validatorにより用意されたValidatorActionfield - フィールドオブジェクトerrors - エラー
org.apache.commons.validator.ValidatorException - datePatternまたはdatePatternStrictに不正な
 パターン文字が含まれる場合、startDateまたはendDateが日付に変換できない
 場合にスローされる
public boolean validateArraysIndex(java.lang.Object bean,
                                   org.apache.commons.validator.ValidatorAction va,
                                   org.apache.commons.validator.Field field,
                                   ValidationErrors errors)
                            throws org.apache.commons.validator.ValidatorException
配列・コレクション型に対してのフィールドチェックが可能である。 配列・コレクションの全ての要素に対して、validation.xmlで 定義したdepends名から”Array”を取ったチェックルールを呼び出す。 depends="requiredArray" ⇒ "required" (必須チェック)
bean - 検査対象のJavaBeanインスタンスva - Validatorにより用意されたValidatorActionfield - フィールドインスタンスerrors - エラー
org.apache.commons.validator.ValidatorException - validation定義ファイルの設定ミスがあった場合
 、チェック対象のbeanがnullである場合にスローされる例外。protected IndexedBeanWrapper getIndexedBeanWrapper(java.lang.Object bean)
bean - ターゲットのBean
protected java.lang.Class[] getParamClass(org.apache.commons.validator.ValidatorAction va)
va - Validatorにより用意されたValidatorAction
protected java.lang.reflect.Method getMethod(org.apache.commons.validator.ValidatorAction va,
                                             java.lang.Class[] paramClass)
va - ValidatorActionparamClass - 引数クラス配列
public boolean validateMultiField(java.lang.Object bean,
                                  org.apache.commons.validator.ValidatorAction va,
                                  org.apache.commons.validator.Field field,
                                  ValidationErrors errors)
MultiFieldValidator の実装クラスが必要。validation.xml に設定を行う。validation.xml に必ず記述すること。MultiFieldValidator の実装例
 public boolean validate(Object value, Object[] depends) {
     int value0 = Integer.parseInt(value);
     int value1 = Integer.parseInt(depends[0]);
     int value2 = Integer.parseInt(depends[1]);
     return (value1 <= value0 && value2 >= value0);
 }
 
 <form name="/validateMultiField">
   <field property="value" depends="multiField">
     <msg key="errors.multiField"
             name="multiField"/>
     <arg key="label.value" position="0" />
     <arg key="label.value1" position="1" />
     <arg key="label.value2" position="2" />
     <var>
       <var-name>fields</var-name>
       <var-value>value1,value2</var-value>
     </var>
     <var>
       <var-name>multiFieldValidator</var-name>
       <var-value>sample.SampleMultiFieldValidator</var-value>
     </var>
   </field>
 </form>
 
 errors.multiField={0}は{1}から{2}の間の値を入力してください。
 
 | var-name | var-value | ||
| fields | 検証に必要な他のフィールド名 | false | 複数のフィールドを指定する場合はフィールド名をカンマ区切りで 指定する。 | 
| multiFieldValidator | MultiFieldValidator実装クラス名 | true | 複数フィールドの相関チェックを行う MultiFieldValidator実装クラス名。 | 
bean - 検査対象のオブジェクトva - Validatorにより用意されたValidatorActionfield - フィールドオブジェクトerrors - エラー
true
protected java.lang.String extractValue(java.lang.Object bean,
                                        org.apache.commons.validator.Field field)
Fieldオブジェクトの値から、
 ValidatorUtilsクラスのメソッドを利用して値を取得する。
bean - 検証対象のオブジェクト。field - Fieldオブジェクト。
ValidatorUtils.getValueAsString(Object, String)
protected void rejectValue(ValidationErrors errors,
                           org.apache.commons.validator.Field field,
                           org.apache.commons.validator.ValidatorAction va,
                           java.lang.Object bean)
errors - エラーva - Validatorにより用意されたValidatorActionfield - フィールドインスタンスbean - 入力エラーが生じたJavaBeanインスタンス| 
 | ||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||