ADF Facesコンバータについて

すべてのADF Facesコンバータがjavax.faces.convert.Converterインタフェースを実装します。ADF Facesコンバータは、oracle.adf.view.faces.convertにパッケージ化されています。提供されているADF Facesコンバータ・クラスのセットには、次のリストに示すように、文字列とJavaオブジェクト間の変換機能が備わっています。

ADF Facesコンバータの詳細は、oracle.adf.view.faces.convert.ColorConverteroracle.adf.view.faces.convert.DateTimeConverterおよびoracle.adf.view.faces.convert.NumberConverterに関するJavadocを参照してください。

ADF Facesコンバータとそのタグ

提供されているADF Facesコンバータ・タグのセットとその登録済IDは、次のとおりです。

タグ クラス 登録済ID
af:convertColor ColorConverter oracle.adf.Color
af:convertDateTime DateTimeConverter oracle.adf.DateTime
af:convertNumber NumberConverter oracle.adf.Number

サポートされているタグ属性のリストは、「リファレンス: ADF Facesコンバータおよびバリデータ」を参照してください。

タグを使用するには、提供されているタグをコンポーネント内にネストします。次に、タグの属性を使用して、コンポーネント・データの書式および型を構成します。次に例を示します。

<af:selectInputColor id="sicConv" 
                     chooseId="cpConv" 
                     label="Enter or select color from palette below" 
                     value="#{color.colorValue1}">
  <af:convertColor patterns="rrr-ggg-bbb #RRGGBB" transparentAllowed="false" />
</af:selectInputColor>
<af:chooseColor id="cpConv" colorData="#{adfFacesContext.colorPalette.default49}"/>    

クライアント側の変換

JSF標準コンバータとは異なり、ADF Facesコンバータでは、サーバー側の変換に加え、クライアント側の変換がサポートされます。ADF Facesのクライアント側の変換には、サーバー側の変換と同じ変換ロジックが用意されています。ただし、クライアントでは、サーバー側で変換時に発生する可能性のある変換エラーに対するチェックにJavaScriptが使用される点が異なります。クライアント側のコンバータでは、変換問題に関する多くの検証チェックがクライアント自体で実行されます。サーバーでJavaオブジェクト間の変換問題がある場合は、クライアント側のコンバータによってエラーが検出されてエラー・メッセージが表示されるため、サーバーへのラウンドトリップを実行せずに済みます。

色、日付および数値に関するJavaScript対応コンバータに加え、ADF Facesには、次のJava型にバインドされる入力テキスト・フィールドに関するJavaScript対応コンバータも用意されています。

ADF FacesのJavaScript対応コンバータは、フォームの発行時にクライアントで実行されます。したがって、エラーはサーバーへのラウンドトリップなしに検出可能です。ただし、ADF Facesアプリケーションのクライアント側の変換と検証を無効にできます。「ADF Facesのクライアント側の変換および検証の無効化」を参照してください。

oracle.adf.view.faces.convert.ClientConverterインタフェースを使用すると、javax.faces.convert.Converterの実装である既存のコンバータに独自のクライアント側変換を追加できます。クライアント・コンバータのAPIの詳細は、「ADF Facesのクライアント・コンバータおよびバリデータのAPIについて」を参照してください。

値バインディング

ADF Facesコンバータは、タグの実行フェーズ中ではなく、実際の変換の発生時に値バインディングを評価します。これは、コンバータAPIのsetValueBinding(String name, ValueBinding)およびgetValueBinding(String name)メソッドによってサポートされます。

メッセージのカスタマイズ

ADF Facesでは、変換エラーに関連付けられているFacesMessageの要約および詳細をカスタマイズできます。

要約をカスタマイズするには、形式CONVERT_xxx_MESSAGE_IDxxxは変換型)のメッセージ識別子のテキストをオーバーライドします。たとえば、CONVERT_DATE_MESSAGE_IDは、入力値が日付に変換できない場合のFacesMessageに対するメッセージ識別子です。ADF Facesのメッセージ識別子およびキーのリストは、「ADF Facesのメッセージおよびキーについて」を参照してください。

コンバータ・エラー・メッセージの詳細部分は、次のいずれかの方法でカスタマイズできます。


af:convertDateTimeとf:convertDateTimeの違いについて
af:convertNumberとf:convertNumberの違いについて
JSF標準コンバータについて
ADF Facesバリデータについて

ADF Facesコンバータおよびバリデータの使用
カスタムJSFコンバータおよびバリデータの使用