jp.terasoluna.fw.web.struts.form
インタフェース MultiFieldValidator


public interface MultiFieldValidator

複数のフィールドの相関入力チェックを行うインタフェース。 プレゼンテーション層でアクションフォームの複数フィールド間の依存関係による 入力チェックを実行する場合は、このインタフェースを実装したクラスを作成する。 validate(String, String[]) メソッドの第一引数には検証対象の値、 第二引数には依存するフィールドの値が配列で渡される。検証エラーの場合は false を返却すること。
検証対象のフィールドは null または空文字で渡される場合がある ので、注意が必要である。また、この検証ルールにはデフォルトの エラーメッセージが存在しないため、validation.xml には必ずメッセージの設定を行うこと。
※この検証ルールはJavaScriptでのチェックをサポートしていない。

アクションフォームのvalueフィールドの値が、value1フィールドの値以上、 value2フィールドの値以下であることを検証する場合、以下のように実装、設定を 行う。

MultiFieldValidator の実装例
 public boolean validate(String value, String[] fields) {
     int value0 = Integer.parseInt(value);
     int value1 = Integer.parseInt(fields[0]);
     int value2 = Integer.parseInt(fields[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}の間の値を入力してください。


メソッドの概要
 boolean validate(java.lang.String value, java.lang.String[] fields)
          複数フィールドの相関入力チェックを実行する。
 

メソッドの詳細

validate

boolean validate(java.lang.String value,
                 java.lang.String[] fields)
複数フィールドの相関入力チェックを実行する。
検証対象の値は第一引数で渡される。検証に必要な他のフィールドの 値は第二引数に配列として渡される。検証エラーの場合は false を返却すること。

パラメータ:
value - 検証対象の値
fields - 検証に必要な他のフィールドの値配列
戻り値:
エラーがなければ true