JSF標準バリデータについて

検証は、編集可能なコンポーネント・データが、モデル・レイヤーに更新される前に規則または条件と照合して検証されるプロセスです。たとえば、入力フィールドに最小長および最大長がある場合があります。コンポーネント・データが検証できないか、または検証規則に合格しない場合、モデルは更新されません。

文字列長および数値範囲に関するチェックを処理するJSF標準バリデータは、javax.faces.validator.Validatorインタフェースを実装します。バリデータは、EditableValueHolderインタフェースを実装するコンポーネントに設定できます。

標準バリデータ・タグ

提供されているJSF標準バリデータ・クラスとそのタグのセットは、次のとおりです。

タグ クラス 名前 チェック内容
f:validateDoubleRange DoubleRangeValidator javax.faces.DoubleRange コンポーネント値が指定範囲内であること。値は、浮動小数点型または浮動小数点に変換可能であることが必要です。
f:validateLength LengthValidator javax.faces.Length コンポーネント値の長さが指定範囲内であること。値は、java.lang.String型であることが必要です。
f:validateLongRange LongRangeValidator javax.faces.LongRange コンポーネント値が指定範囲内であること。値は、数値型、またはlongに変換可能なStringであることが必要です。

バリデータ・タグは、コンポーネント内にタグをネストし、そのタグ属性にコンポーネント・データに対して設定可能な値を指定して使用します。値には、リテラル値または値バインディング式を使用できます。コンポーネントにバリデータが設定されている場合、コンポーネントのrequired属性がtrueに設定されていると、validate()メソッドによって、発行された値が最初にチェックされます。次に、バリデータがコールされます。

バリデータは、入力コンポーネント(UIInput)にのみ登録できます。1つのコンポーネントに複数のバリデータを登録できます。JSFによって、コンポーネントに追加された順にバリデータがコールされます。

注意: 必須値をチェックするには、入力コンポーネントでrequired属性を使用してください。必須入力フィールドを検証するための標準のバリデータ・クラスはありません。

提供されているバリデータ・タグの使用方法の詳細は、「提供されているタグを使用したコンポーネントへの標準バリデータの登録」を参照してください。サポートされているタグ属性のリストは、「リファレンス: JSF標準コンバータおよびバリデータ」を参照してください。

さらに複雑な検証規則およびチェックが必要な場合は、独自のカスタム・バリデータを作成できます。カスタム・バリデータの作成およびアプリケーションへの登録の詳細は、「カスタムJSFコンバータおよびバリデータの使用」を参照してください。


変換および検証プロセスについて
変換および検証エラーについて
必須値およびimmediate属性について
JSFでのクライアント側の変換および検証について
JSF標準コンバータおよびバリデータの使用