|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.ObjectDefaultBeanValidator
jp.terasoluna.fw.validation.springmodules.BaseMultiFieldValidator
public abstract class BaseMultiFieldValidator
相関チェックを行なう抽象クラス。
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"); } }
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情報を指定しない相関チェック等に使用する。 |
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定義ファイルで設定した入力チェック機能を使用するために、 コントローラの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 |
コンストラクタの詳細 |
---|
public BaseMultiFieldValidator()
メソッドの詳細 |
---|
public void validate(java.lang.Object obj, Errors errors)
validateMultiField(Object, Errors)
メソッドを呼び出す。
obj
- 検査対象のJavaBeanerrors
- エラーprotected abstract void validateMultiField(java.lang.Object obj, Errors errors)
obj
- 検査対象のJavaBeanerrors
- エラー
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |