アノテーション型 FacesConverter
@RetentionSE(RUNTIMESE) @TargetSE({TYPESE,FIELDSE,METHODSE,PARAMETERSE}) @InheritedSE @Qualifier public @interface FacesConverter
クラスにこのアノテーションが存在すると、クラスはランタイムに
Converter
として自動的に登録されます。value()
属性の値は Converter-id とみなされ、forClass()
属性の値は Converter-for-class とみなされ、このアノテーションが付加されているクラスの完全修飾クラス名はコンバーターとみなされます。- クラス。実装では、Jakarta Faces Specification Document のセクション 11.4「アプリケーション構成リソースのエントリに対応し、そのエントリの代わりとなるアノテーション」のアルゴリズムで見つかったFacesConverter
のアノテーションが付けられたクラスごとに、Application.addConverter()
の適切なバリアントが呼び出されることを保証する必要があります。Converter-id が空の文字列でない場合は、Application.addConverter(java.lang.String,java.lang.String)
が呼び出され、派生した Converter-ID を最初の引数として渡し、派生した Converter-Class を 2 番目の引数として渡します。Converter-id が空の文字列の場合、Application.addConverter(java.lang.Class,java.lang.String)
が呼び出され、converter-for-class を最初の引数として渡し、派生した Converter-class を 2 番目の引数として渡します。実装では、addConverter()
へのこのようなすべての呼び出しがアプリケーションの起動時およびリクエストが処理される前に発生することを保証する必要があります。前のテキストには、アプリケーションのユーザーが理解する必要がある重要な微妙さが含まれています。単一の
@FacesConverter
アノテーションを使用して、by-class
およびby-converter-id
データ構造の両方で単一のConverter
実装を登録することはできません。この結果を達成する 1 つの方法は、@FacesConverter
アノテーションなしで抽象基本クラスに実際のコンバーターロジックを配置し、それぞれ@FacesConverter
アノテーション付きの 2 つのサブクラスを派生させることです。1 つのサブクラスにはvalue
属性がありますが、forClass
属性はなく、他のサブクラスにはその逆があります。コンバーターとコレクションに関する別の重要な微妙な点については、
<h:selectManyListBox>
の ViewDeclarationLanguage ドキュメントを参照してください。
オプション要素のサマリー
オプション要素 修飾子と型 オプションの要素 説明 ClassSE
forClass
このアノテーションの属性の値は、コンバーター - のためのクラスコンバーターのこのクラスのインスタンスはApplication.createConverter(java.lang.Class)
を呼び出してインスタンス化することが可能なように解釈されます。boolean
managed
このアノテーション属性の値は、指定されたコンバーターが CDI 管理のコンバーターであるかどうかを示すインジケーターとして解釈されます。StringSE
value
このアノテーション属性の値は、Application.createConverter(java.lang.String)
を呼び出すことにより、このクラスのコンバーターのインスタンスをインスタンス化できる converter-id と見なされます。
要素の詳細
value
StringSE value
このアノテーション属性の値は、
Application.createConverter(java.lang.String)
を呼び出すことにより、このクラスのコンバーターのインスタンスをインスタンス化できる converter-id と見なされます。- 戻り値:
- コンバーター ID
- デフォルト:
- ""
forClass
ClassSE forClass
このアノテーションの属性の値は、コンバーター - のためのクラスコンバーターのこのクラスのインスタンスは
Application.createConverter(java.lang.Class)
を呼び出してインスタンス化することが可能なように解釈されます。- 戻り値:
- クラス
- デフォルト:
- java.lang.Object.class