ADF Facesのエラー・メッセージのカスタマイズについて

JSF標準のコンバータとバリデータ同様に、ADF Facesのコンバータとバリデータには、無効な値によって変換または検証に失敗した場合(必須入力エラーも含む)の固有の要約および詳細メッセージが用意されています。ADF Facesでは、コンバータまたはバリデータのエラー・メッセージの詳細部分を次のいずれかの方法でカスタマイズできます。

カスタム・メッセージには、パラメータに対するオプションのプレースホルダ({0}{1}など)を含めることができます。実行時に、プレースホルダは適切なパラメータ値で置換されます。パラメータの順序は、次のとおりです。

パラメータを使用するメッセージの例は、「ADF Facesのメッセージについて」を参照してください。

メッセージ詳細の属性

次の表に、ADF Facesの特定の変換および検証エラーに対するカスタム詳細メッセージを提供するために使用できる、コンバータ・タグとバリデータ・タグの属性およびメッセージ書式パラメータを示します。

コンバータ・タグ/バリデータ・タグ 属性および設定可能なパラメータ 説明
af:convertColor

convertMessageDetail

{0}: コンポーネント・ラベル
{1}: 入力値
{2}: 設定されたカラー・パターン

入力値がpatternsで指定されたカラー・パターンと一致していない場合

af:convertDateTime

convertBothMessageDetail

{0}: コンポーネント・ラベル
{1}: 入力値
{2}: 設定されたdateStyleおよびtimeStyleに基づく日時の例

typeがbothに設定されていて、patternがNULLであるかまたは設定されていないときの日付への変換エラーの場合

af:convertDateTime

convertDateMessageDetail

{0}: コンポーネント・ラベル
{1}: 入力値
{2}: パターンまたはスタイル(typeがdateに設定されている場合)に基づく日付の例

typeがdateに設定されていて、patternがNULLであるかまたは設定されていないときの日付への変換エラーの場合

af:convertDateTime

convertTimeMessageDetail

{0}: コンポーネント・ラベル
{1}: 入力値
{2}: 設定されたtimeStyleに基づく時間の例

typeがtimeに設定されていて、patternがNULLであるかまたは設定されていないときの日付への変換エラーの場合

af:convertNumber

convertCurrencyMessageDetail

{0}: コンポーネント・ラベル
{1}: 入力値

typeがcurrencyで、patternがNULLであるかまたは設定されていないときの数値への変換エラーの場合
af:convertNumber

convertNumberMessageDetail

{0}: コンポーネント・ラベル
{1}: 入力値

typeがnumberで、patternがNULLであるかまたは設定されていないときの数値への変換エラーの場合
af:convertNumber

convertPatternMessageDetail

{0}: コンポーネント・ラベル
{1}: 入力値
{2}: 設定されたパターン

設定されたpatternに基づく数値への変換エラーの場合

af:convertNumber

convertPercentMessageDetail

{0}: コンポーネント・ラベル
{1}: 入力値

typeがpercentで、patternがNULLであるかまたは設定されていないときの数値への変換エラーの場合
af:validateByteLength

maximumMessageDetail

{0}: コンポーネント・ラベル
{1}: 入力値
{2}: 設定された最大バイト

入力値がmaximumで指定された最大バイト長を超えている場合

af:validateDateTimeRange

maximumMessageDetail

{0}: コンポーネント・ラベル
{1}: 入力値
{2}: 設定された最大値

入力値がmaximumで指定された値を超えている場合
af:validateDateTimeRange

minimumMessageDetail

{0}: コンポーネント・ラベル
{1}: 入力値
{2}: 設定された最小値

入力値がminimumで指定された値未満の場合
af:validateDateTimeRange

notInRangeMessageDetail

{0}: コンポーネント・ラベル
{1}: 入力値
{2}: 設定された最小値
{3}: 設定された最大値

入力値がminimumおよびmaximumで指定された範囲内でない場合

af:validateRegExp

noMatchMessageDetail

{0}: コンポーネント・ラベル
{1}: 入力値
{2}: 設定されたパターン

入力値がpatternで指定された値と一致していない場合

次の表に、requiredMessageDetail属性をサポートするADF Facesの編集可能な入力コンポーネントを示します。この属性は、必須入力エラー(値が必須であるが何も指定されていない場合)に対するカスタム詳細メッセージの提供に使用できます。

コンポーネント・タグ 属性および設定可能なパラメータ
af:inputTextaf:inputHiddenaf:inputFileaf:selectInputColoraf:selectInputDateaf:selectInputTextaf:selectManyCheckboxaf:selectManyListboxaf:selectManyShuttleaf:selectOneChoiceaf:selectOneListboxaf:selectOneRadioaf:selectOrderShuttle

requiredMessageDetail

{0}:コンポーネント・ラベル

コード・サンプル

<af:selectInputColor id="sic1"
                     value="#{someBean.color1}"
                     label="Enter or choose a color" 
                     tip="HTML hex color pattern only:#RRGGBB">
  <af:convertColor patterns="#RRGGBB"
                   convertMessageDetail="The color &quot;{0}&quot; you have chosen in &quot;{1}&quot; is not a valid HTML hex pattern &quot;{2}&quot;."/>
</af:selectInputColor>    

無効な入力値(例: #FFFFFG)を入力すると、ADF Facesによって、クライアント側で値が検証され、「The color "FFFFFG" you have chosen in "Enter or choose a color" is not a valid HTML hex pattern "#RRGGBB".」という検証アラート・メッセージが表示されます。

<af:selectInputDate id="sid1"
                    value="#{someBean.date1}"
                    label="Date of birth"
                    required="true"
                    requiredMessageDetail="You must specify &quot;{0}&quot; to apply for a license.">
</af:selectInputDate>    

日付を入力しない場合、必須入力エラー・メッセージは「You must specify "Date of birth" to apply for a license.」のように表示されます。

API setterメソッド

プログラムによってカスタム・メッセージを設定するには、次の表に示すように、コンバータ、バリデータまたは入力コンポーネントのインスタンスで適切なsetterメソッドを使用します。setterメソッドでは、カスタム・エラー・メッセージがStringとして受け入れられます。

コンポーネント・タイプ setterメソッド
ColorConverter setConvertMessageDetail (java.lang.String convertMessageDetail)
DateTimeConverter

setConvertDateMessageDetail (java.lang.String convertDateMessageDetail)

setConvertTimeMessageDetail (java.lang.String convertTimeMessageDetail)

setConvertBothMessageDetail (java.lang.String convertBothMessageDetail)

NumberConverter

setConvertPatternMessageDetail (java.lang.String convertPatternMessageDetail)

setConvertNumberMessageDetail (java.lang.String convertNumberMessageDetail)

setConvertCurrencyMessageDetail (java.lang.String convertCurrencyMessageDetail)

setConvertPercentMessageDetail (java.lang.String convertPercentMessageDetail)

ByteLengthValidator setMaximumMessageDetail (java.lang.String maximumMessageDetail)
DateTimeRangeValidator

setMaximumMessageDetail (java.lang.String maximumMessageDetail)

setMinimumMessageDetail (java.lang.String minimumMessageDetail)

setNotInRangeMessageDetail (java.lang.String notInRangeMessageDetail)

RegExpValidator setNoMatchMessageDetail (java.lang.String noMatchMessageDetail)
UIXEditableValueコンポーネント

setRequiredMessageDetail (java.lang.String requiredMessageDetail)

注意: UIXEditableValueコンポーネントには、UIXInputUIXSelectBooleanUIXSelectInputUIXSelectManyおよびUIXSelectOneコンポーネントが含まれます。


ADF Facesの変換および検証エラーについて
ADF Facesのメッセージおよびキーについて