jp.terasoluna.fw.validation.springmodules
クラス BaseMultiFieldValidator

java.lang.Object
  上位を拡張 DefaultBeanValidator
      上位を拡張 jp.terasoluna.fw.validation.springmodules.BaseMultiFieldValidator

public abstract class BaseMultiFieldValidator
extends DefaultBeanValidator

相関チェックを行なう抽象クラス。

Spring-Modules Validatorによる単項目チェック以外に相関にチェックを 行ないたい場合に使用する。 ただし、DBアクセスが必要なチェックは各業務クラスにてチェックすること。 サブクラスはvalidateMultiField(Object, Errors)メソッドを オーバーライドし、チェックロジックを記述する。

サブクラスの実装例

サブクラスはvalidateMultiField(Object, Errors)メソッドを オーバーライドする。 引数のobjは検査対象のJavaBeanであるため、各JavaBeanの型にキャストしてから 属性を取り出す。 エラーを追加する場合、引数errorsのrejectメソッド、rejectValueメソッドを 実行する。

 protected void validateMultiField(Object obj, Errors errors) {

     // JavaBeanの取得
     SampleBean bean = (SampleBean) obj;

     // 1つ目の属性
     String field1 = bean.getField1();
 
     // 2つ目の属性
     String field2 = bean.getField2();
       
     // 1つ目の属性と2つ目の属性が同じではない場合、エラーを追加する
     if (!field1.equals(field2) {
         // エラーを追加する
         errors.reject("errors.sample");
     }
 }
 
Errorsインタフェースの代表的なエラー追加メソッド
メソッド名
説明
void rejectValue(String field, String errorCode) エラーを追加する。fieldにはJavaBeanのプロパティ名、 errorCodeにはリソースバンドルのキーを指定する。 置換文字列がないエラーに使用する。
void rejectValue(String field, String errorCode, Object[] errorArgs, String defaultMessage) エラーを追加する。field、errorCodeは上記と同様。errorArgsは置換文字列、 defaultMessageはデフォルトメッセージを指定する。(Terasolunaでは デフォルトメッセージは使用しないため、任意の文字列を設定する)
void reject(String errorCode) エラーを追加する。リソースバンドルのキーのみ指定する。 field情報を指定しない相関チェック等に使用する。
void reject(String errorCode, Object[] errorArgs, String defaultMessage) エラーを追加する。errorArgsは置換文字列、defaultMessageは デフォルトメッセージを指定する。(Terasolunaでは デフォルトメッセージは使用しないため、任意の文字列を設定する) field情報を指定しない相関チェック等に使用する。
Bean定義ファイルの記述例(入力チェッククラス)

Spring上でこの入力チェック機能を使用する場合、 入力チェックファクトリ(入力チェッククラスの初期化を行なうクラス)と 入力チェッククラスをBean定義ファイルに設定する必要がある。

 <!-- 入力チェッククラスのファクトリ -->
 <bean id="validatorFactory"     
   class="org.springmodules.commons.validator.DefaultValidatorFactory"> 
   <property name="validationConfigLocations"> 
     <list> 
       <!-- ここに記述したバリデーション定義ファイル(validation.xml)や
            バリデーションルール定義ファイル(validation-rules.xml)を
            Springフレームワークが設定ファイルとして認識する --> 
       <value>/WEB-INF/validation/validator-rules.xml</value>
       <value>/WEB-INF/validation/validator-rules-ex.xml</value>
       <value>/WEB-INF/validation/validation.xml</value> 
     </list> 
   </property> 
 </bean> 
   
 <!-- 相関チェックを行なう入力チェッククラス 
   class属性に作成した相関チェッククラスを記述する-->
 <bean id="sampleValidator"  class="jp.terasoluna.sample2.validation.SampleMultiFieldValidator"> 
   <property name="validatorFactory"><ref local="validatorFactory"/></property> 
 </bean>
 
Bean定義ファイルの記述例(コントローラ)

Bean定義ファイルで設定した入力チェック機能を使用するために、 コントローラのvalidator属性に上記で設定した入力チェック機能を 設定する必要がある。

 <!-- サンプル入力チェック業務 -->
 <bean name="/secure/blogic/validateSample.do" 
   class="jp.terasoluna.sample2.web.controller.ValidateSampleController"
   parent="xmlRequestController">  
   <property name="sumService" ref="sumService"/>  
   <property name="validator" ref=“sampleValidator"/>
   <property name="commandClass">
     <value>jp.terasoluna.sample2.dto.SampleDto</value>
   </property>
 </bean>
 

関連項目:
org.springmodules.validation.commons.DefaultBeanValidator, org.springframework.validation.BindException, org.springframework.validation.Errors

コンストラクタの概要
BaseMultiFieldValidator()
           
 
メソッドの概要
 void validate(java.lang.Object obj, Errors errors)
          入力チェックメソッド。
protected abstract  void validateMultiField(java.lang.Object obj, Errors errors)
          相関チェックを行なうメソッド。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

BaseMultiFieldValidator

public BaseMultiFieldValidator()
メソッドの詳細

validate

public void validate(java.lang.Object obj,
                     Errors errors)
入力チェックメソッド。 設定ファイルによる単項目チェックを呼び出し、 エラーがなければvalidateMultiField(Object, Errors) メソッドを呼び出す。

パラメータ:
obj - 検査対象のJavaBean
errors - エラー

validateMultiField

protected abstract void validateMultiField(java.lang.Object obj,
                                           Errors errors)
相関チェックを行なうメソッド。 単項目チェックでエラーが発生しない場合、呼び出される。 サブクラスはこのメソッドを実装する

パラメータ:
obj - 検査対象のJavaBean
errors - エラー