|
|||||||||
| 前のパッケージ 次のパッケージ | フレームあり フレームなし | ||||||||
参照:
説明
| クラスの概要 | |
| Arg | デフォルトのアーギュメントまたは妥当性チェック定義で指定されたアーギュメント (例: required) はメッセージのパラメータに使用することができます。 |
| Constant | constant(このクラス) はグローバルまたはロケール毎に不変なフィールドを定義する際の置き換えに使用することができます。 |
| Field | フィールドに対して行う妥当性チェックとエラーメッセージの生成に使用する 入れ替え可能な妥当性チェックのリストとメッセージの情報と値を内部に持ちます。 |
| Form | form/JavaBean に対する妥当性チェックのルールを内部に持ちます。 |
| FormSet | Locale をベースにした国、言語等ごとに保持された
Form のセットを保持します。
|
| GenericTypeValidator | このクラスは妥当性チェックの際に行われる基本的なクラス型変換メソッドを持ちます。 |
| GenericValidator | このクラスは妥当性チェックを行う基本的なメソッドを持ちます。 |
| Msg | 代換メッセージ(このクラス)は Field と関連付けられ
ValidatorAction(入れ替え可能な妥当性チェック)に設定されたデフォルトメッセージの代わりに使用されます。
|
| Validator | 妥当性チェック処理を行います。 |
| ValidatorAction | 動的にインスタンス化され、実行される妥当性チェック処理の情報を保持します。 |
| ValidatorResources | Locale に関連した FormSet オブジェクトの保持を目的とするクラスです。
|
| ValidatorResourcesInitializer | XMLファイルの情報を ValidatorResources にマッピングします。
|
| ValidatorResult | このクラスは JavaBean に対して行われた妥当性チェック(のセット)の処理結果を保持します。 |
| ValidatorResults | このクラスは JavaBean に対して行われた妥当性チェック(のセット)の処理結果を保持します。 |
| ValidatorUtil | 基本的なユーティリティメソッド郡。 |
| Var | variable (このクラス)は入れ替え可能な妥当性チェックの情報を持つ
Field と関連付けることができます。
|
| 例外の概要 | |
| ValidatorException | Validator フレームワークの例外です。 |
Validator パッケージはXMLファイル(の定義)に基づく妥当性チェックを提供します。
電子媒体またはユーザの入力情報からデータを受け取る際に行われる、 それが妥当なデータかどうかのチェックは一般的(な処理)だと認識されています。 この処理は繰り返し行われ、また同じデータセットに対してロケール毎に異なった妥当性チェックのルールが 適用される場合等にはより複雑になってしまいます。 エラーメッセージもロケール毎に異なったものとなるでしょう。 このパッケージは上記問題を扱い、妥当性チェックの開発の効率化と保守性の向上を試みます。
Validator を利用しようとする場合には、以下の基本的な手順を踏む必要があります:
org.apache.commons.validator.Validator クラスインスタンスを生成します。
以前の妥当性チェックが完了していて、他のスレッドから同時にその Validator インスタンスを利用としない限り、
ValidatorResources が同じであれば現在の Validator インスタンスを再利用しても安全です。
org.apache.commons.validator.Validator の妥当性チェックメソッドを呼びます。
Commons Validator はXMLファイルに定義された妥当性チェックのルールを JavaBean に対して行う基本的な妥当性チェックのためのフレームワークです。 妥当性チェックが定義された Validator はXMLファイルによって定義することができます。 Validator の例では "required(必須)" のフィールドに対する妥当性チェックの際にどのクラスのどのメソッドを呼ぶかを定義できます。 妥当性チェックのルールはロケール毎、ルールの適用される JavaBean/Form 毎にグループ化することができます。 このフレームワークでは慣用的に使用されるいくつかのフィールド属性(チェックのルール)をサポートします。
XMLファイルに定義され保持された妥当性チェックのルールは妥当性チェックの際に JavaBean に取り出されます。 Jakarta Commons BeanUtils (http://jakarta.apache.org/commons/beanutils.html) パッケージを使用し、階層構造をもったプロパティの参照をサポートします。 エラーメッセージとエラーメッセージ内の可変パラメータはフィールドの妥当性チェック処理と関連付けられます。
Validator インスタンスが生成された後、addResource メソッドを呼ぶことにより 妥当性チェックの処理を追加することができます。 以下に用意されたキー(とクラス名)を示します。
| クラス名 | 内部リソースキー | 内容 |
|---|---|---|
| java.lang.Object | Validator.BEAN_KEY | 妥当性チェックの対象となるJavaBean。 |
| java.util.Locale | Validator.LOCALE_KEY | FormSet を取得する際のロケール。 指定されない場合にはデフォルトのロケールが使用されます。 |
| org.apache.commons.validator.ValidatorAction | Validator.VALIDATOR_ACTION_KEY | 妥当性チェックを行う際に Validator のリソースから自動的に追加されます。 この名称がメソッドにて指定された場合、指定された ValidatorAction が妥当性チェックの処理に追加されます。 |
| org.apache.commons.validator.Field | Validator.FIELD_KEY | 妥当性チェックを行う際に Validator のリソースから自動的に追加されます。 この名称がメソッドにて指定された場合、指定された Field が妥当性チェックの処理対象に追加されます。 |
これは required (必須) の妥当性チェックルールをBeanに対して行う基本的な例です。
この例はユニットテスト内で使用されています ( validator/src/test にある
org.apache.commons.validator.RequiredNameTest と
validator-name-required.xml を参照してください)。
妥当性チェックのルールと処理を定義したXMLファイルを作成します。
必要となる妥当性チェックをXMLファイルに定義してください。
XML Example
Validator Example
Pluggable Validator Example
"require(必須)" という入れ替え可能な妥当性チェックを定義します。
<form-validation>
<global>
<validator name="required"
classname="org.apache.commons.validator.TestValidator"
method="validateRequired"
methodParams="java.lang.Object,
org.apache.commons.validator.Field"/>
</global>
<formset>
</formset>
</form-validation>
"firstName" と "lastName" に "require(必須)" の妥当性チェックルールを追加します。
<form-validation>
<global>
<validator name="required"
classname="org.apache.commons.validator.TestValidator"
method="validateRequired"
methodParams="java.lang.Object,
org.apache.commons.validator.Field"/>
</global>
<formset>
<form name="nameForm">
<field property="firstName"
depends="required">
<arg0 key="nameForm.firstname.displayname"/>
</field>
<field property="lastName"
depends="required">
<arg0 key="nameForm.lastname.displayname"/>
</field>
</form>
</formset>
</form-validation>
org.apache.commons.validator.RequiredNameTest から抜粋
InputStream in = this.getClass().getResourceAsStream("validator-name-required.xml");
// ValidatorResources インスタンスを
// XMLファイルにて初期化するために生成
ValidatorResources resources = new ValidatorResources();
// ValidatorResources 内にリソースをロード
ValidatorResourcesInitializer.initialize(resources, in);
// テスト対象となるBeanを生成
Name name = new Name();
// ロードされたリソースとフォームキーから
// 妥当性チェック(Validator)インスタンスを生成
Validator validator = new Validator(resources, "nameForm");
// 妥当性チェックを行うために
// 対象となるBeanを Validator に登録
validator.addResource(Validator.BEAN_KEY, name);
// 妥当性チェックの結果を取得
Map hResults = null;
// ValidatorException が投げられるが
// この例では catch していない
hResults = validator.validate();
if (hResults.get("firstName") == null) {
// エラーなし
} else {
// "firstName" に対するエラーの数
int errors = ((Integer)hResults.get("firstName")).intValue();
}
'required' 入れ替え可能な妥当性チェック内に定義された妥当性チェックメソッド (org.apache.commons.validator.TestValidator から抜粋)。
public static boolean validateRequired(Object bean, Field field) {
String value = ValidatorUtil.getValueAsString(bean, field.getProperty());
return GenericValidator.isBlankOrNull(value);
}
|
|||||||||
| 前のパッケージ 次のパッケージ | フレームあり フレームなし | ||||||||