パッケージ jakarta.faces.convert

アノテーション型 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 ドキュメントを参照してください。

    • オプション要素のサマリー

      オプション要素  
      修飾子と型 オプションの要素 説明
      ClassSEforClass
      このアノテーションの属性の値は、コンバーター - のためのクラスコンバーターのこのクラスのインスタンスは Application.createConverter(java.lang.Class) を呼び出してインスタンス化することが可能なように解釈されます。
      booleanmanaged
      このアノテーション属性の値は、指定されたコンバーターが CDI 管理のコンバーターであるかどうかを示すインジケーターとして解釈されます。
      StringSEvalue
      このアノテーション属性の値は、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
      • managed

        boolean managed

        このアノテーション属性の値は、指定されたコンバーターが CDI 管理のコンバーターであるかどうかを示すインジケーターとして解釈されます。

        戻り値:
        このコンバーターが CDI によって管理されているかどうか
        デフォルト:
        false