変換および検証エラーについて

変換または検証エラーが発生すると、変換または検証に失敗したコンポーネントによって、デフォルトのコンバータまたはバリデータのエラー・メッセージがキューに入れられ、コンポーネント自体が無効になります。検証処理フェーズ後に、JSFによって現在のページが再表示されます。

変換エラーまたは検証エラーの原因をユーザーが理解できるようにするには、メッセージを生成したコンポーネントの横にエラー・メッセージを表示する必要があります。これを実行するには、IDをコンポーネントに割り当てる必要があります。次に、コンポーネントの横にh:messageタグを使用して、タグのfor属性でコンポーネントのIDを参照します。詳細メッセージ(デフォルト)を表示するか、要約メッセージを表示するかを指定できます。

注意: 1つのコンポーネントで複数のメッセージを通知することは可能ですが、一般的ではありません。このような場合、h:messageタグでは、コンポーネントによって生成された最初のメッセージのみが表示されます。デバッグ目的では、ページでh:messagesタグを使用すると、すべてのコンポーネントによって生成されるすべてのメッセージが表示されます。

デフォルトのエラー・メッセージのテキストを変更する必要がある場合は、メッセージ・バンドルを設定し、キーを使用してメッセージに対する置換テキストを指定できます。すべてのJSF標準コンバータに対してデフォルトのエラー・メッセージが1つあります。このデフォルトのコンバータ・メッセージのキーは、javax.faces.component.UIInput.CONVERSIONです。たとえば、メッセージ・リソース・バンドルに次のように記述できます。

 javax.faces.component.UIInput.CONVERSION=This is incorrect. 
 javax.faces.component.UIInput.CONVERSION_detail=The value you entered is incorrect. Please try again.    

JSF標準バリデータのデフォルトのエラー・メッセージは、バリデータ・クラスに個別に定義されます。デフォルトのバリデータ・メッセージのキーは、次のとおりです。

キー バリデータ
javax.faces.validator.NOT_IN_RANGE
javax.faces.validator.DoubleRangeValidator.MAXIMUM
javax.faces.validator.DoubleRangeValidator.MINIMUM
javax.faces.validator.DoubleRangeValidator.TYPE          
DoubleRangeValidator
javax.faces.validator.LengthValidator.MAXIMUM
javax.faces.validator.LengthValidator.MINIMUM          
LengthValidator
javax.faces.validator.NOT_IN_RANGE
javax.faces.validator.LongRangeValidator.MAXIMUM
javax.faces.validator.LongRangeValidator.MINIMUM
javax.faces.validator.LongRangeValidator.TYPE          
LongRangeValidator

注意: 必須入力コンポーネントを検証するための標準のバリデータ・クラスはありません。デフォルトの必須エラーのキーは、javax.faces.component.UIInput.REQUIREDです。

メッセージ・バンドルを作成してJSF標準メッセージをオーバーライドする方法の詳細は、「JSF標準メッセージに対するカスタム・メッセージ・テキストについて」を参照してください。


変換および検証プロセスについて
必須値およびimmediate属性について
カスタムJSFコンバータおよびバリデータに対するエラー・メッセージについて
変換または検証エラー・メッセージの表示