jp.terasoluna.fw.web.struts.form
クラス FieldChecksEx

java.lang.Object
  上位を拡張 org.apache.struts.validator.FieldChecks
      上位を拡張 jp.terasoluna.fw.web.struts.form.FieldChecksEx
すべての実装されたインタフェース:
java.io.Serializable

public class FieldChecksEx
extends org.apache.struts.validator.FieldChecks

Validator 追加ルールクラス。

Strutsが提供する FieldChecks を拡張した入力チェッククラス。
FieldChecksEx の拡張ルールとしては、以下のものがある。

検証名
クライアントチェック
メソッド名
(validation-rules.xmlに記述する) ルール名
概要
英数字チェック
validateAlphaNumericString() alphaNumericString フィールド値が半角英数字のみで構成されているかどうかをチェック。
大文字英数字チェック
validateCapAlphaNumericString() capAlphaNumericString 値が大文字の半角英数字のみで構成されているかどうかをチェック。
フィールド数値チェック
validateNumber() number フィールド値が数値であることをチェック。
半角カナ文字チェック
validateHankakuKanaString() hankakuKanaString フィールド値が半角カナのみで構成されていることをチェック。
半角文字チェック
validateHankakuString() hankakuString フィールド値が半角の文字のみで構成されていることをチェック。
全角文字チェック
validateZenkakuString() zenkakuString フィールド値が全角の文字のみで構成されていることをチェック。
全角カナ文字チェック
validateZenkakuKanaString() zenkakuKanaString フィールド値が全角カナ文字のみで構成されていることをチェック。
入力禁止文字チェック
×
validateProhibited() prohibited フィールド値に入力禁止文字が含まれていないことをチェック。
文字列長一致チェック
validateStringLength() stringLength フィールド値が指定した文字列長と一致することをチェック。
数字文字列チェック
validateNumericString() numericString フィールド値が数字のみで構成されていることをチェック。
バイト列長チェック
×
validateByteLength() byteLength フィールド値のバイト列長が指定した長さと一致することをチェック。
バイト列範囲チェック
×
validateByteRange() byteRange フィールド値のバイト列長が指定した範囲以内であることをチェック。
日付範囲チェック
validateDateRange() dateRange フィールド値の日付が指定した範囲以内であることをチェック。
複数フィールドチェック
×
validateMultiField() multiField 複数フィールド間の相関チェック。
配列・コレクション型フィールド全要素チェック
×
validateArraysIndex() (validation.xml<depend>要素で決定) depends属性で指定された入力チェックを配列・コレクション型のフィールド値 の全ての値に対してチェックを行う。

フィールドチェックの詳細については、各メソッドの説明を参照。
拡張したValidatorを利用するためには、アクション毎に 検証内容を記述した定義ファイル( validation.xml ) を作成する必要がある。

単体のフィールド検証

<formset>タグ内部の <form> 要素の name 属性に、 struts-config.xmlで定義されている アクションのパス名を記述する。
記述がない場合は、該当するアクションパスの検証は一切行われない。 <field>要素の property 属性に、 対象のフィールド名、depends属性に validation-rules.xmlで定義されている 検証ルール名を記述する。 ひとつのフォームに複数の検証を行う場合(必須入力、桁数など)は、 カンマ区切りで記述していく。
ただし、出力されるエラーメッセージは1フィールドに対し、 1つのみである。 (必須入力、桁数チェックの両方に違反している場合、どれか1つの エラーしか出力されない)

validation.xmlの記述例(単体フィールド検証)
  <formset>
    ・・・
    <!-- 単体のフィールド検証 -->
    <form name="/logon">
      <field property="companyId"
          depends="required,alphaNumericString,maxlength">
        <arg0 key="logon.companyId"/>
        <arg1 key="${var:maxlength}" resource="false"/>
        <var>
          <var-name>maxlength</var-name>
          <var-value>10</var-value>
        </var>
      </field>
    </form>
    ・・・
  </formset>
 
配列・コレクション型の一覧検証

配列・コレクション型の一覧検証は、下記の点を拡張している。

基本的には単体フィールド検証と同様validation.xml<form> 要素を作成するが、 配列・コレクション型の一覧検証を行うためには、下記の設定が必要である。
  1. 配列・コレクション型の一覧表示には、必ず property 属性でフォーム内のフィールド名を指定する。またプロパティ名には JXPathIndexedBeanWrapperImplの仕様に従い、ネストしたプロパティ名を 指定することが可能である。
  2. <depends>で指定するルールは、 validation-rules.xmlの 末尾が Array であるルール名を用いる。
  3. 検証されるフォームがFormExインタフェースを 実装している必要がある。
配列・コレクション型の一覧検証に対応するルールは以下の通りである。

validation.xmlの記述例(配列・コレクション型一覧表示の検証)
  <formset>
    ・・・
    <!-- 配列・コレクション型一覧表示の検証確認 -->
    <form name="/isValid">
      <field property="codeArray"
          depends="requiredArray,alphaNumericStringArray">
        <arg0 key="##INDEX" resource="false"/>
        <arg1 key="sampleValidate.codeArray"/>
      </field>
    </form>
    ・・・
  </formset>
 

配列・コレクション型のインデックス番号をエラーメッセージに 埋め込むためには、<arg0〜3>要素の何れかの key"##INDEX" という文字列を指定し、<resource> 要素を "false" にする。
単体のフィールド検証と同様、<depends> で複数の検証を行う場合カンマ区切りで複数の検証ルールを指定できる。
Validator フレームワークを利用したフォームは、 DynaValidatorActionFormEx ValidatorActionFormEx を参照。

関連項目:
FormEx, DynaValidatorActionFormEx, ValidatorActionFormEx, JXPathIndexedBeanWrapperImpl, 直列化された形式

フィールドの概要
protected static java.lang.String HANKAKU_KANA_LIST_KEY
          ApplicationResources ファイルに定義された半角文字テーブルを取得するキー。
protected static java.lang.String hankakuKanaList
          半角カナ文字列である。
static java.lang.String INDEX
          配列インデックス型フィールドのIndex値。
private static org.apache.commons.logging.Log log
          ログクラス。
private static long serialVersionUID
          シリアルバージョンID
protected static java.lang.String ZENKAKU_BEGIN_U00_LIST
          UNICODE文字コード''から'?'の範囲内に存在する 全角文字列。
protected static java.lang.String ZENKAKU_KANA_LIST_KEY
          ApplicationResources ファイルに定義された全角文字テーブルを取得するキー。
protected static java.lang.String zenkakuKanaList
          全角カナ文字列。
 
クラス org.apache.struts.validator.FieldChecks から継承されたフィールド
FIELD_TEST_EQUAL, FIELD_TEST_NOTNULL, FIELD_TEST_NULL
 
コンストラクタの概要
FieldChecksEx()
           
 
メソッドの概要
protected static org.apache.struts.action.ActionForm getActionForm(javax.servlet.http.HttpServletRequest request)
          フォーム実装オブジェクトを取得する。
protected static org.apache.commons.validator.Field getArrayIndexField(org.apache.commons.validator.Field field, int pos)
          指定されたIndexのフィールドを取得する。
protected static int getByteLength(java.lang.String value, java.lang.String encoding)
          指定された文字列のバイト列長を取得する。
static java.lang.String getHankakuKanaList()
          半角カナのリストを取得する。
protected static java.lang.reflect.Method getMethod(org.apache.commons.validator.ValidatorAction va, java.lang.Class[] paramClass)
          配列・コレクションの要素を検証するメソッドを取得する。
protected static java.lang.Class[] getParamClass(org.apache.commons.validator.ValidatorAction va)
          検証ルールメソッドに渡される引数クラス配列を取得する。
static java.lang.String getZenkakuKanaList()
          全角カナのリストを取得する。
protected static boolean isHankaku(char c)
          指定された文字が半角文字であることをチェックする。
protected static boolean isHankakuKana(char c)
          指定された文字が半角カナ文字であることをチェックする。
protected static boolean isValid(java.lang.Object result)
          リフレクションを用いて実行されたメソッドの結果 オブジェクトから、検証が成功したか否かをチェックする。
protected static boolean isZenkaku(char c)
          指定された文字が全角文字であることをチェックする。
protected static boolean isZenkakuKana(char c)
          指定された文字が全角カナ文字であることをチェックする。
protected static java.lang.String replaceIndexString(java.lang.String arg, int pos)
          argの値が##INDEXの時、走査中のインデックス値に 置換する このメソッドはアクションフォームを対象としているため フォーム以外で、流用を行なうことを推奨しない。
static boolean validateAlphaNumericString(java.lang.Object bean, org.apache.commons.validator.ValidatorAction va, org.apache.commons.validator.Field field, org.apache.struts.action.ActionMessages errors, org.apache.commons.validator.Validator validator, javax.servlet.http.HttpServletRequest request)
          指定されたフィールドが英数字であることをチェックする。
static boolean validateArraysIndex(java.lang.Object bean, org.apache.commons.validator.ValidatorAction va, org.apache.commons.validator.Field field, org.apache.struts.action.ActionMessages errors, org.apache.commons.validator.Validator validator, javax.servlet.http.HttpServletRequest request)
          配列・コレクション型のフィールド値を全要素チェックする。
static boolean validateByteLength(java.lang.Object bean, org.apache.commons.validator.ValidatorAction va, org.apache.commons.validator.Field field, org.apache.struts.action.ActionMessages errors, org.apache.commons.validator.Validator validator, javax.servlet.http.HttpServletRequest request)
          指定されたフィールドのバイト列長が一致していることをチェックする。
static boolean validateByteRange(java.lang.Object bean, org.apache.commons.validator.ValidatorAction va, org.apache.commons.validator.Field field, org.apache.struts.action.ActionMessages errors, org.apache.commons.validator.Validator validator, javax.servlet.http.HttpServletRequest request)
          指定されたフィールドのバイト列長が 指定した範囲内であることをチェックする。
static boolean validateCapAlphaNumericString(java.lang.Object bean, org.apache.commons.validator.ValidatorAction va, org.apache.commons.validator.Field field, org.apache.struts.action.ActionMessages errors, org.apache.commons.validator.Validator validator, javax.servlet.http.HttpServletRequest request)
          指定されたフィールドが大文字英数字であることをチェックする。
static boolean validateDateRange(java.lang.Object bean, org.apache.commons.validator.ValidatorAction va, org.apache.commons.validator.Field field, org.apache.struts.action.ActionMessages errors, org.apache.commons.validator.Validator validator, javax.servlet.http.HttpServletRequest request)
          日付が指定した範囲内であるかどうかチェックする。
static boolean validateHankakuKanaString(java.lang.Object bean, org.apache.commons.validator.ValidatorAction va, org.apache.commons.validator.Field field, org.apache.struts.action.ActionMessages errors, org.apache.commons.validator.Validator validator, javax.servlet.http.HttpServletRequest request)
          指定されたフィールドが半角カナ文字列であることをチェックする。
static boolean validateHankakuString(java.lang.Object bean, org.apache.commons.validator.ValidatorAction va, org.apache.commons.validator.Field field, org.apache.struts.action.ActionMessages errors, org.apache.commons.validator.Validator validator, javax.servlet.http.HttpServletRequest request)
          指定されたフィールドが半角文字列であることをチェックする。
static boolean validateMultiField(java.lang.Object bean, org.apache.commons.validator.ValidatorAction va, org.apache.commons.validator.Field field, org.apache.struts.action.ActionMessages errors, org.apache.commons.validator.Validator validator, javax.servlet.http.HttpServletRequest request)
          複数フィールドの相関チェックを行う。
static boolean validateNumber(java.lang.Object bean, org.apache.commons.validator.ValidatorAction va, org.apache.commons.validator.Field field, org.apache.struts.action.ActionMessages errors, org.apache.commons.validator.Validator validator, javax.servlet.http.HttpServletRequest request)
          指定されたフィールドが数値であることをチェックする。
static boolean validateNumericString(java.lang.Object bean, org.apache.commons.validator.ValidatorAction va, org.apache.commons.validator.Field field, org.apache.struts.action.ActionMessages errors, org.apache.commons.validator.Validator validator, javax.servlet.http.HttpServletRequest request)
          指定されたフィールドが数字のみからなる文字列であることを チェックする。
static boolean validateProhibited(java.lang.Object bean, org.apache.commons.validator.ValidatorAction va, org.apache.commons.validator.Field field, org.apache.struts.action.ActionMessages errors, org.apache.commons.validator.Validator validator, javax.servlet.http.HttpServletRequest request)
          指定されたフィールドに入力禁止文字列が混入しているか どうかをチェックする。
static boolean validateStringLength(java.lang.Object bean, org.apache.commons.validator.ValidatorAction va, org.apache.commons.validator.Field field, org.apache.struts.action.ActionMessages errors, org.apache.commons.validator.Validator validator, javax.servlet.http.HttpServletRequest request)
          指定されたフィールドの文字列長が一致していることをチェックする。
static boolean validateZenkakuKanaString(java.lang.Object bean, org.apache.commons.validator.ValidatorAction va, org.apache.commons.validator.Field field, org.apache.struts.action.ActionMessages errors, org.apache.commons.validator.Validator validator, javax.servlet.http.HttpServletRequest request)
          指定されたフィールドが全角カタカナ文字列であることをチェックする。
static boolean validateZenkakuString(java.lang.Object bean, org.apache.commons.validator.ValidatorAction va, org.apache.commons.validator.Field field, org.apache.struts.action.ActionMessages errors, org.apache.commons.validator.Validator validator, javax.servlet.http.HttpServletRequest request)
          指定されたフィールドが全角文字列であることをチェックする。
 
クラス org.apache.struts.validator.FieldChecks から継承されたメソッド
isString, validateByte, validateCreditCard, validateDate, validateDouble, validateDoubleRange, validateEmail, validateFloat, validateFloatRange, validateInteger, validateIntRange, validateLong, validateMask, validateMaxLength, validateMinLength, validateRequired, validateRequiredIf, validateShort, validateUrl
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

serialVersionUID

private static final long serialVersionUID
シリアルバージョンID

関連項目:
定数フィールド値

log

private static org.apache.commons.logging.Log log
ログクラス。


INDEX

public static final java.lang.String INDEX
配列インデックス型フィールドのIndex値。

関連項目:
定数フィールド値

hankakuKanaList

protected static java.lang.String hankakuKanaList
半角カナ文字列である。ApplicationResources ファイルに定義する。


zenkakuKanaList

protected static java.lang.String zenkakuKanaList
全角カナ文字列。ApplicationResources ファイルに定義する。


HANKAKU_KANA_LIST_KEY

protected static final java.lang.String HANKAKU_KANA_LIST_KEY
ApplicationResources ファイルに定義された半角文字テーブルを取得するキー。

関連項目:
定数フィールド値

ZENKAKU_KANA_LIST_KEY

protected static final java.lang.String ZENKAKU_KANA_LIST_KEY
ApplicationResources ファイルに定義された全角文字テーブルを取得するキー。

関連項目:
定数フィールド値

ZENKAKU_BEGIN_U00_LIST

protected static final java.lang.String ZENKAKU_BEGIN_U00_LIST
UNICODE文字コード''から'?'の範囲内に存在する 全角文字列。

関連項目:
定数フィールド値
コンストラクタの詳細

FieldChecksEx

public FieldChecksEx()
メソッドの詳細

isHankakuKana

protected static boolean isHankakuKana(char c)
指定された文字が半角カナ文字であることをチェックする。

パラメータ:
c - 文字
戻り値:
半角カナ文字であれば true

isHankaku

protected static boolean isHankaku(char c)
指定された文字が半角文字であることをチェックする。

パラメータ:
c - 文字
戻り値:
半角文字であれば true

isZenkaku

protected static boolean isZenkaku(char c)
指定された文字が全角文字であることをチェックする。

パラメータ:
c - 文字
戻り値:
全角文字であれば true

isZenkakuKana

protected static boolean isZenkakuKana(char c)
指定された文字が全角カナ文字であることをチェックする。

パラメータ:
c - 文字
戻り値:
全角カナ文字であれば true

validateAlphaNumericString

public static boolean validateAlphaNumericString(java.lang.Object bean,
                                                 org.apache.commons.validator.ValidatorAction va,
                                                 org.apache.commons.validator.Field field,
                                                 org.apache.struts.action.ActionMessages errors,
                                                 org.apache.commons.validator.Validator validator,
                                                 javax.servlet.http.HttpServletRequest request)
指定されたフィールドが英数字であることをチェックする。

エラーとなった場合には、エラー情報を生成し、 指定されたエラー情報リストに追加する。 エラーメッセージのフォーマットは、validation-rules.xml に記述する。

パラメータ:
bean - 検査対象のオブジェクト
va - Strutsにより用意されたValidatorAction
field - フィールドオブジェクト
errors - ActionMessages アクションエラー
validator - Validatorインスタンス
request - HTTPリクエスト
戻り値:
入力値が正しければ true

validateCapAlphaNumericString

public static boolean validateCapAlphaNumericString(java.lang.Object bean,
                                                    org.apache.commons.validator.ValidatorAction va,
                                                    org.apache.commons.validator.Field field,
                                                    org.apache.struts.action.ActionMessages errors,
                                                    org.apache.commons.validator.Validator validator,
                                                    javax.servlet.http.HttpServletRequest request)
指定されたフィールドが大文字英数字であることをチェックする。

エラーとなった場合には、エラー情報を生成し、 指定されたエラー情報リストに追加する。 エラーメッセージのフォーマットは、validation-rules.xml に記述する。

パラメータ:
bean - 検査対象のオブジェクト
va - Strutsにより用意されたValidatorAction
field - フィールドオブジェクト
errors - ActionMessages アクションエラー
validator - Validatorインスタンス
request - HTTPリクエスト
戻り値:
入力値が正しければ true

validateNumber

public static boolean validateNumber(java.lang.Object bean,
                                     org.apache.commons.validator.ValidatorAction va,
                                     org.apache.commons.validator.Field field,
                                     org.apache.struts.action.ActionMessages errors,
                                     org.apache.commons.validator.Validator validator,
                                     javax.servlet.http.HttpServletRequest request)
指定されたフィールドが数値であることをチェックする。 まず、入力された文字列を用い、BigDecimal 型を生成する ここで生成不可能ならばエラー用のActionMessageを作成し、false を返却する。 次に整数部の桁数が指定されている場合に、桁数の確認を行う。 validation.xmlisAccordedInteger()"true" 指定されている場合のみ 整数桁数の同一チェックが行われる。 チェックに引っかかった場合は、エラー用のActionMessageを作成し、falseを返却する。 最後に小数部の桁数が指定されている場合に、桁数の確認を行う。 validation.xmlでisAccordedScaleが"true"である場合のみ 小数桁数の同一チェックが行われる。

エラーとなった場合には、エラー情報を生成し、 指定されたエラー情報リストに追加する。 エラーメッセージのフォーマットは、validation-rules.xml に記述する。
下記は、整数部3、小数部2である数値を検証する例である。

validation.xmlの記述例
 <form name="/sample">
  ・・・
  <field property="escape"
      depends="number">
    <arg0 key="sample.escape"/>
    <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>
 
validation.xmlに設定を要する<var>要素
var-name
var-value
必須性
概要
integerLength 整数部桁数 false 整数の桁数を設定する、isAccordedInteger指定が 無いときは、指定桁数以内の検証を行う。省略時、または非数値を 設定したときは、検証を行なわない。
scale 小数部桁数 false 小数値の桁数を設定する、isAccordedScale指定が 無いときは、指定桁数以内の検証を行う。省略時、または非数値を 設定したときは、検証を行なわない。
isAccordedInteger 整数桁数一致チェック false trueが指定されたとき、整数桁数の一致チェックが 行なわれる。省略時、true以外の文字列が設定された時は 桁数以内チェックとなる。
isAccordedScale 小数桁数一致チェック false trueが指定されたとき、小数桁数の一致チェックが 行なわれる。省略時、true以外の文字列が設定された時は 桁数以内チェックとなる。

パラメータ:
bean - 検査対象のオブジェクト
va - Strutsにより用意されたValidatorAction
field - フィールドオブジェクト
errors - ActionMessages アクションエラー
validator - Validatorインスタンス
request - HTTPリクエスト
戻り値:
入力値が正しければ true

validateHankakuKanaString

public static boolean validateHankakuKanaString(java.lang.Object bean,
                                                org.apache.commons.validator.ValidatorAction va,
                                                org.apache.commons.validator.Field field,
                                                org.apache.struts.action.ActionMessages errors,
                                                org.apache.commons.validator.Validator validator,
                                                javax.servlet.http.HttpServletRequest request)
指定されたフィールドが半角カナ文字列であることをチェックする。

エラーとなった場合には、エラー情報を生成し、 指定されたエラー情報リストに追加する。 エラーメッセージのフォーマットは、validation-rules.xml に記述する。

パラメータ:
bean - 検査対象のオブジェクト
va - Validatorにより用意された ValidatorAction
field - フィールドオブジェクト
errors - ActionMessages アクションエラー
validator - Validatorインスタンス
request - HTTPリクエスト
戻り値:
入力値が正しければ true

validateHankakuString

public static boolean validateHankakuString(java.lang.Object bean,
                                            org.apache.commons.validator.ValidatorAction va,
                                            org.apache.commons.validator.Field field,
                                            org.apache.struts.action.ActionMessages errors,
                                            org.apache.commons.validator.Validator validator,
                                            javax.servlet.http.HttpServletRequest request)
指定されたフィールドが半角文字列であることをチェックする。

エラーとなった場合には、エラー情報を生成し、 指定されたエラー情報リストに追加する。エラーメッセージのフォーマットは、 validation-rules.xmlに記述する。

パラメータ:
bean - 検査対象のオブジェクト
va - Validatorにより用意された ValidatorAction
field - フィールドオブジェクト
errors - アクションエラー
validator - Validatorインスタンス
request - HTTPリクエスト
戻り値:
入力値が正しければ true

validateZenkakuString

public static boolean validateZenkakuString(java.lang.Object bean,
                                            org.apache.commons.validator.ValidatorAction va,
                                            org.apache.commons.validator.Field field,
                                            org.apache.struts.action.ActionMessages errors,
                                            org.apache.commons.validator.Validator validator,
                                            javax.servlet.http.HttpServletRequest request)
指定されたフィールドが全角文字列であることをチェックする。

エラーとなった場合には、エラー情報を生成し、 指定されたエラー情報リストに追加する。エラーメッセージのフォーマットは、 validation-rules.xmlに記述する。

パラメータ:
bean - 検査対象のオブジェクト
va - Validatorにより用意された ValidatorAction
field - フィールドオブジェクト
errors - アクションエラー
validator - Validatorインスタンス
request - HTTPリクエスト
戻り値:
入力値が正しければ true

validateZenkakuKanaString

public static boolean validateZenkakuKanaString(java.lang.Object bean,
                                                org.apache.commons.validator.ValidatorAction va,
                                                org.apache.commons.validator.Field field,
                                                org.apache.struts.action.ActionMessages errors,
                                                org.apache.commons.validator.Validator validator,
                                                javax.servlet.http.HttpServletRequest request)
指定されたフィールドが全角カタカナ文字列であることをチェックする。

エラーとなった場合には、エラー情報を生成し、 指定されたエラー情報リストに追加する。エラーメッセージのフォーマットは、 validation-rules.xmlに記述する。

パラメータ:
bean - 検査対象のオブジェクト
va - Validatorにより用意された ValidatorAction
field - フィールドオブジェクト
errors - アクションエラー
validator - Validatorインスタンス
request - HTTPリクエスト
戻り値:
入力値が正しければ true

validateProhibited

public static boolean validateProhibited(java.lang.Object bean,
                                         org.apache.commons.validator.ValidatorAction va,
                                         org.apache.commons.validator.Field field,
                                         org.apache.struts.action.ActionMessages errors,
                                         org.apache.commons.validator.Validator validator,
                                         javax.servlet.http.HttpServletRequest request)
指定されたフィールドに入力禁止文字列が混入しているか どうかをチェックする。

エラーとなった場合には、エラー情報を生成し、 指定されたエラー情報リストに追加する。 エラーメッセージのフォーマットは、 validation-rules.xmlに記述する。
以下は、禁止文字列チェックの設定例である。

validation.xmlの記述例
 <form name="/sample">
  ・・・
  <field property="escape"
      depends="prohibited">
    <arg0 key="sample.escape"/>
    <var>
      <var-name>chars</var-name>
      <var-value>!"#$%&'()</var-value>
    </var>
  </field>
  ・・・
 </form>
 
validation.xmlに設定を要する<var>要素
var-name
var-value
必須性
概要
chars 入力禁止キャラクタ false 入力文字列が、入力禁止キャラクタの何れかに対応するとき、 falseを返却する。省略時はtrue

パラメータ:
bean - 検査対象のオブジェクト
va - Validatorにより用意された ValidatorAction
field - フィールドオブジェクト
errors - アクションエラー
validator - Validatorインスタンス
request - HTTPリクエスト
戻り値:
入力値が正しければ true

validateNumericString

public static boolean validateNumericString(java.lang.Object bean,
                                            org.apache.commons.validator.ValidatorAction va,
                                            org.apache.commons.validator.Field field,
                                            org.apache.struts.action.ActionMessages errors,
                                            org.apache.commons.validator.Validator validator,
                                            javax.servlet.http.HttpServletRequest request)
指定されたフィールドが数字のみからなる文字列であることを チェックする。

エラーとなった場合には、エラー情報を生成し、 指定されたエラー情報リストに追加する。 エラーメッセージのフォーマットは、 validation-rules.xmlに記述する。

パラメータ:
bean - 検査対象のオブジェクト
va - Validatorにより用意された ValidatorAction
field - フィールドオブジェクト
errors - アクションエラー
validator - Validatorインスタンス
request - HTTPリクエスト
戻り値:
入力値が正しければ true

validateStringLength

public static boolean validateStringLength(java.lang.Object bean,
                                           org.apache.commons.validator.ValidatorAction va,
                                           org.apache.commons.validator.Field field,
                                           org.apache.struts.action.ActionMessages errors,
                                           org.apache.commons.validator.Validator validator,
                                           javax.servlet.http.HttpServletRequest request)
指定されたフィールドの文字列長が一致していることをチェックする。

エラーとなった場合には、エラー情報を生成し、 指定されたエラー情報リストに追加する。 エラーメッセージのフォーマットは、 validation-rules.xmlに記述する。
以下は、文字列長が5であるときのみtrueを返却する 検証の設定例である。

validation.xmlの記述例
 <form name="/sample">
  ・・・
  <field property="escape"
      depends="stringLength">
    <arg0 key="sample.escape"/>
    <var>
      <var-name>length</var-name>
      <var-value>5</var-value>
    </var>
  </field>
  ・・・
 </form>
 
validation.xmlに設定を要する<var>要素
var-name
var-value
必須性
概要
stringLength 入力文字列桁数 false 入力文字列長が指定された桁数であるときは true 省略時はtrueが返却される。

パラメータ:
bean - 検査対象のオブジェクト
va - Validatorにより用意されたValidatorAction
field - フィールドオブジェクト
errors - アクションエラー
validator - Validatorインスタンス
request - HTTPリクエスト
戻り値:
入力値が正しければ true

validateByteLength

public static boolean validateByteLength(java.lang.Object bean,
                                         org.apache.commons.validator.ValidatorAction va,
                                         org.apache.commons.validator.Field field,
                                         org.apache.struts.action.ActionMessages errors,
                                         org.apache.commons.validator.Validator validator,
                                         javax.servlet.http.HttpServletRequest request)
指定されたフィールドのバイト列長が一致していることをチェックする。

エラーとなった場合には、エラー情報を生成し、 指定されたエラー情報リストに追加する。 エラーメッセージのフォーマットは、 validation-rules.xmlに記述する。
以下は、バイト列長が5であるときのみtrueを返却する 検証の設定例である。

validation.xmlの記述例
 <form name="/sample">
  ・・・
  <field property="escape"
      depends="byteLength">
    <arg0 key="sample.escape"/>
    <var>
      <var-name>byteLength</var-name>
      <var-value>5</var-value>
    </var>
    <var>
      <var-name>encoding</var-name>
      <var-value>Windows-31J</var-value>
    </var>
  </field>
  ・・・
 </form>
 
validation.xmlに設定を要する<var>要素
var-name
var-value
必須性
概要
byteLength 入力文字列バイト数 false 入力文字列バイト長を検証するためのバイト長。
encoding 文字エンコーディング false 入力文字をバイト列に変換する際に使用する文字エンコーディング。 省略された場合はVMのデフォルトエンコーディングが使用される。

パラメータ:
bean - 検査対象のオブジェクト
va - Validatorにより用意されたValidatorAction
field - フィールドオブジェクト
errors - アクションエラー
validator - Validatorインスタンス
request - HTTPリクエスト
戻り値:
入力値が正しければ true

validateByteRange

public static boolean validateByteRange(java.lang.Object bean,
                                        org.apache.commons.validator.ValidatorAction va,
                                        org.apache.commons.validator.Field field,
                                        org.apache.struts.action.ActionMessages errors,
                                        org.apache.commons.validator.Validator validator,
                                        javax.servlet.http.HttpServletRequest request)
指定されたフィールドのバイト列長が 指定した範囲内であることをチェックする。

エラーとなった場合には、エラー情報を生成し、 指定されたエラー情報リストに追加する。 エラーメッセージのフォーマットは、 validation-rules.xmlに記述する。
以下は、バイト列長が5以上、10以下であるときのみ true を返却する検証の設定例である。

validation.xmlの記述例
 <form name="/sample">
  ・・・
  <field property="escape"
      depends="byteRange">
    <arg0 key="sample.escape"/>
    <var>
      <var-name>maxByte</var-name>
      <var-value>10</var-value>
    </var>
    <var>
      <var-name>minByte</var-name>
      <var-value>5</var-value>
    </var>
    <var>
      <var-name>encoding</var-name>
      <var-value>Windows-31J</var-value>
    </var>
  </field>
  ・・・
 </form>
 
validation.xmlに設定を要する<var>要素
var-name
var-value
必須性
概要
maxByte 最大バイト数 false 入力文字列バイト長を検証するための最大バイト長。 省略した場合はint型の最大値。
minByte 最大バイト数 false 入力文字列バイト長を検証するための最小バイト長。 省略した場合は0。
encoding 文字エンコーディング false 入力文字をバイト列に変換する際に使用する文字エンコーディング。 省略された場合はVMのデフォルトエンコーディングが使用される。

パラメータ:
bean - 検査対象のオブジェクト
va - Validatorにより用意されたValidatorAction
field - フィールドオブジェクト
errors - アクションエラー
validator - Validatorインスタンス
request - HTTPリクエスト
戻り値:
入力値が正しければ true

validateDateRange

public static boolean validateDateRange(java.lang.Object bean,
                                        org.apache.commons.validator.ValidatorAction va,
                                        org.apache.commons.validator.Field field,
                                        org.apache.struts.action.ActionMessages errors,
                                        org.apache.commons.validator.Validator validator,
                                        javax.servlet.http.HttpServletRequest request)
日付が指定した範囲内であるかどうかチェックする。

エラーとなった場合には、エラー情報を生成し、 指定されたエラー情報リストに追加する。 エラーメッセージのフォーマットは、 validation-rules.xmlに記述する。
以下は、日付が2000/01/01から2010/12/31の範囲内であるかどうかの 検証の設定例である。

validation.xmlの記述例
 <form name="/sample">
  ・・・
  <field property="date"
      depends="dateRange">
    <arg key="label.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>
    <var>
      <var-name>datePattern</var-name>
      <var-value>yyyy/MM/dd</var-value>
    </var>
  </field>
  ・・・
 </form>
 
validation.xmlに設定を要する<var>要素
var-name
var-value
必須性
概要
startDate 開始日付 false 日付範囲の開始の閾値となる日付。 datePatternまたはdatePatternStrictで指定した日付フォーマットと一致すること。
endDate 終了日付 false 日付範囲の終了の閾値となる日付。 datePatternまたはdatePatternStrictで指定した日付フォーマットと一致すること。
datePattern 日付パターン false 日付のパターンを示す文字列。Date型のフォーマットルールに従う。
datePatternStrict 日付のパターンを示す文字列。Date型のフォーマットルールに従う。 false 日付パターンのチェックを厳密に行うかどうか。 日付パターンがyyyy/MM/ddの場合、2001/1/1はエラーとなる。 datePatternが指定されている場合、datePatternで指定されたフォーマット が優先される。

パラメータ:
bean - 検査対象のオブジェクト
va - Validatorにより用意されたValidatorAction
field - フィールドオブジェクト
errors - アクションエラー
validator - Validatorインスタンス
request - HTTPリクエスト
戻り値:
入力値が正しければ true

validateMultiField

public static boolean validateMultiField(java.lang.Object bean,
                                         org.apache.commons.validator.ValidatorAction va,
                                         org.apache.commons.validator.Field field,
                                         org.apache.struts.action.ActionMessages errors,
                                         org.apache.commons.validator.Validator validator,
                                         javax.servlet.http.HttpServletRequest request)
複数フィールドの相関チェックを行う。 この検証ルールの実行にはMultiFieldValidator の実装クラスが 必要。実装したクラスは validation.xml に設定を行う。
エラーとなった場合には、エラー情報を生成し、 指定されたエラー情報リストに追加する。 この検証ルールにはデフォルトのエラーメッセージがないため、 メッセージは validation.xml に必ず記述すること。
アクションフォームのvalueフィールドの値が、value1フィールドの値以上、 value2フィールドの値以下であることを検証する場合、以下のように実装、 設定を行う。
MultiFieldValidator の実装例
 public boolean validate(String value, String[] depends) {
     int value0 = Integer.parseInt(value);
     int value1 = Integer.parseInt(depends[0]);
     int value2 = Integer.parseInt(depends[1]);
     return (value1 <= value0 && value2 >= value0);
 }
 
validation.xmlの設定例
 <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}の間の値を入力してください。
validation.xmlに設定を要する<var>要素
var-name
var-value
必須性
概要
fields 検証に必要な他のフィールド名 false 複数のフィールドを指定する場合はフィールド名をカンマ区切りで 指定する。
multiFieldValidator MultiFieldValidator 実装クラス名 false 複数フィールドの相関チェックを行う MultiFieldValidator 実装クラス名。

パラメータ:
bean - 検査対象のオブジェクト
va - Validatorにより用意されたValidatorAction
field - フィールドオブジェクト
errors - アクションエラー
validator - Validatorインスタンス
request - HTTPリクエスト
戻り値:
入力値が正しければ true

validateArraysIndex

public static boolean validateArraysIndex(java.lang.Object bean,
                                          org.apache.commons.validator.ValidatorAction va,
                                          org.apache.commons.validator.Field field,
                                          org.apache.struts.action.ActionMessages errors,
                                          org.apache.commons.validator.Validator validator,
                                          javax.servlet.http.HttpServletRequest request)
配列・コレクション型のフィールド値を全要素チェックする。

配列・コレクション型のフォームの要素をすべて検証し、発生した インデックス情報を ActionMessageに追加する。 実行されるサブメソッドの引数の型、順序は、このメソッドと 一致している必要がある。 Fieldのproperty属性にはJXPathIndexedBeanWrapperImplの仕様に従い、 ネストしたプロパティ名を設定することが可能である。

パラメータ:
bean - 検査対象のオブジェクト
va - Strutsにより用意されたValidatorAction
field - フィールドオブジェクト
errors - アクションエラー
validator - Validatorインスタンス
request - HTTPリクエスト
戻り値:
要素すべての入力値が正しければ true

getActionForm

protected static org.apache.struts.action.ActionForm getActionForm(javax.servlet.http.HttpServletRequest request)
フォーム実装オブジェクトを取得する。 このメソッドはアクションフォームを対象としているため フォーム以外で、流用を行なうことを推奨しない。

パラメータ:
request - HTTPリクエスト
戻り値:
フォーム実装オブジェクト

getParamClass

protected static java.lang.Class[] getParamClass(org.apache.commons.validator.ValidatorAction va)
検証ルールメソッドに渡される引数クラス配列を取得する。 このメソッドはアクションフォームを対象としているため フォーム以外で、流用を行なうことを推奨しない。

パラメータ:
va - Strutsにより用意されたValidatorAction
戻り値:
引数クラス配列

getMethod

protected static java.lang.reflect.Method getMethod(org.apache.commons.validator.ValidatorAction va,
                                                    java.lang.Class[] paramClass)
配列・コレクションの要素を検証するメソッドを取得する。 このメソッドはアクションフォームを対象としているため フォーム以外で、流用を行なうことを推奨しない。

パラメータ:
va - Strutsにより用意されたValidatorAction
paramClass - 引数クラス配列
戻り値:
検証メソッドオブジェクト

isValid

protected static boolean isValid(java.lang.Object result)
リフレクションを用いて実行されたメソッドの結果 オブジェクトから、検証が成功したか否かをチェックする。 このメソッドはアクションフォームを対象としているため フォーム以外で、流用を行なうことを推奨しない。

パラメータ:
result - 結果オブジェクト
戻り値:
検証成功時は true

getArrayIndexField

protected static org.apache.commons.validator.Field getArrayIndexField(org.apache.commons.validator.Field field,
                                                                       int pos)
指定されたIndexのフィールドを取得する。 このメソッドはアクションフォームを対象としているため フォーム以外で、流用を行なうことを推奨しない。

パラメータ:
field - 置換元フィールドオブジェクト
pos - 走査中のインデックス
戻り値:
置換先のフィールドオブジェクト

replaceIndexString

protected static java.lang.String replaceIndexString(java.lang.String arg,
                                                     int pos)
argの値が##INDEXの時、走査中のインデックス値に 置換する このメソッドはアクションフォームを対象としているため フォーム以外で、流用を行なうことを推奨しない。

パラメータ:
arg - ActionMessageの置換元キー情報
pos - 走査中のインデックス
戻り値:
キーが##INDEXの時、現在のインデックスを返却する

getByteLength

protected static int getByteLength(java.lang.String value,
                                   java.lang.String encoding)
指定された文字列のバイト列長を取得する。
第二引数のエンコーディングでバイト列に変換するが、指定されていなかったり 、エンコードに失敗する場合はデフォルトのエンコーディングで バイト列に変換を行う。

パラメータ:
value - バイト列長を取得する対象の文字列
encoding - 文字エンコーディング
戻り値:
バイト列長

getHankakuKanaList

public static java.lang.String getHankakuKanaList()
半角カナのリストを取得する。

戻り値:
半角カナリスト

getZenkakuKanaList

public static java.lang.String getZenkakuKanaList()
全角カナのリストを取得する。

戻り値:
全角カナリスト