jp.terasoluna.fw.validation.springmodules
クラス BaseMultiFieldValidator
java.lang.Object
   org.springmodules.validation.commons.AbstractBeanValidator
org.springmodules.validation.commons.AbstractBeanValidator
       org.springmodules.validation.commons.DefaultBeanValidator
org.springmodules.validation.commons.DefaultBeanValidator
           jp.terasoluna.fw.validation.springmodules.BaseMultiFieldValidator
jp.terasoluna.fw.validation.springmodules.BaseMultiFieldValidator
- すべての実装されたインタフェース: 
- org.springframework.validation.Validator
- public abstract class BaseMultiFieldValidator 
- extends org.springmodules.validation.commons.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>
 
- 関連項目:
- DefaultBeanValidator,- BindException,- Errors
 
| メソッドの概要 | 
|  void | validate(java.lang.Object obj,
         org.springframework.validation.Errors errors)入力チェックメソッド。
 | 
| protected abstract  void | validateMultiField(java.lang.Object obj,
                   org.springframework.validation.Errors errors)相関チェックを行なうメソッド。
 | 
 
| クラス org.springmodules.validation.commons.DefaultBeanValidator から継承されたメソッド | 
| getFormName, setUseFullyQualifiedClassName | 
 
| クラス org.springmodules.validation.commons.AbstractBeanValidator から継承されたメソッド | 
| cleanupValidator, getLocale, initValidator, setValidatorFactory, supports | 
 
| クラス 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,
                     org.springframework.validation.Errors errors)
- 入力チェックメソッド。
 設定ファイルによる単項目チェックを呼び出し、
 エラーがなければvalidateMultiField(Object, Errors)メソッドを呼び出す。
 
- 
- 定義:
- インタフェース org.springframework.validation.Validator内のvalidate
- オーバーライド: 
- クラス org.springmodules.validation.commons.AbstractBeanValidator内のvalidate
 
- 
- パラメータ:
- obj- 検査対象のJavaBean
- errors- エラー
 
validateMultiField
protected abstract void validateMultiField(java.lang.Object obj,
                                           org.springframework.validation.Errors errors)
- 相関チェックを行なうメソッド。
 単項目チェックでエラーが発生しない場合、呼び出される。
 サブクラスはこのメソッドを実装する
 
- 
- パラメータ:
- obj- 検査対象のJavaBean
- errors- エラー