パッケージ jakarta.faces.render

クラス RenderKit

  • 既知の直属サブクラス
    RenderKitWrapper

    public abstract class RenderKit
    extends ObjectSE

    RenderKit は、特定のクライアントの Jakarta Faces UIComponent インスタンスをレンダリングする方法を一緒に知っている Renderer インスタンスのコレクションを表します。通常、RenderKit は、クライアントデバイス型、マークアップ言語、ユーザー Locale の組み合わせに特化しています。RenderKit は、関連する Renderer インスタンスのファクトリとしても機能し、各コンポーネントの実際のレンダリングプロセスを実行します。

    一般的な Jakarta Faces 実装では、Web アプリケーションの起動時に 1 つ以上の RenderKit インスタンスを構成します。これらは、RenderKitFactory の getRenderKit() メソッドの呼び出しを通じて使用可能になります。RenderKit インスタンスは共有されるため、スレッドセーフな方法で実装する必要があります。現在の仕様には制限があるため、同じアプリケーションで複数の RenderKit インスタンスを使用するには、このケースに対処する方法を認識しているカスタム ViewHandler インスタンスが必要です。この制限は、仕様の将来のバージョンで解除される予定です。

    RenderKit インスタンスは、ResponseStateManager インスタンスも提供する必要があります。これは、ツリー構造と状態の保存と復元のプロセスで使用されます。

    • コンストラクターの詳細

      • RenderKit

        public RenderKit()
    • メソッドの詳細

      • addRenderer

        public abstract void addRenderer​(StringSE family,
                                         StringSE rendererType,
                                         Renderer renderer)

        指定されたコンポーネント family および rendererType に関連付けられた指定された Renderer インスタンスを、この RenderKit に登録された Renderer のセットに登録し、この識別子の組み合わせに対して以前に登録された Renderer を置き換えます。

        パラメーター:
        family - 登録する Renderer のコンポーネントファミリ
        rendererType - 登録する Renderer のレンダラー型
        renderer - 登録している Renderer インスタンス
        例外:
        NullPointerExceptionSE - family または rendererType または renderer が null の場合
      • getRenderer

        public abstract Renderer getRenderer​(StringSE family,
                                             StringSE rendererType)

        指定されたコンポーネント family および rendererType がある場合、最後に登録された Renderer インスタンスを返します。それ以外の場合は、null を返します。

        パラメーター:
        family - リクエストされた Renderer インスタンスのコンポーネントファミリー
        rendererType - リクエストされた Renderer インスタンスのレンダラー型
        戻り値:
        Renderer インスタンス
        例外:
        NullPointerExceptionSE - family または rendererType が null の場合
      • createResponseWriter

        public abstract ResponseWriter createResponseWriter​(WriterSE writer,
                                                            StringSE contentTypeList,
                                                            StringSE characterEncoding)

        提供された Writer を使用して、指定された(オプションの)コンテンツ型と文字エンコーディングの新しい ResponseWriter インスタンスを作成します。

        実装者は、このメソッドの characterEncoding に必要な値を取得するために、クラス ServletResponse の getCharacterEncoding() メソッドを参照することをお勧めします。このレスポンスの Writer はすでに取得されているため (最終的にこのメソッドに渡されるため)、レスポンスのレンダリング中に文字エンコーディングを変更できないことがわかります。

        パラメーター:
        writer - この ResponseWriter を構築する必要があるライター。
        contentTypeList - このレスポンスのコンテンツ型の「ヘッダースタイルを受け入れる」リスト、または RenderKit が最適なものを選択する必要がある場合は null。現在のバージョンでは、このパラメーターの標準レンダーキットで受け入れられる値には、文字列 text/htmlapplication/xhtml+xmlapplication/xml または text/xml を含む有効な「ヘッダースタイルの受け入れ」文字列が含まれています。これは将来のバージョンで変更される可能性があります。RenderKit は、Accept HTTP ヘッダーから直接取得されるこの引数の値をサポートする必要があるため、Accept ヘッダーの仕様に従って解析する必要があります。Accept ヘッダーの仕様については、RFC 2616 のセクション 14.1 を参照してください。
        characterEncoding - この ResponseWriter の場合は "ISO-8859-1"、RenderKit が最適なものを選択する場合は null など。文字エンコーディングのリストについては、IANA を参照してください。
        戻り値:
        新しい ResponseWriter
        例外:
        IllegalArgumentExceptionSE - contentTypeList で一致するコンテンツ型が見つからない場合、実装に依存する最適化アルゴリズムで適切なコンテンツ型が見つからないか、引数 characterEncoding で一致する文字エンコーディングが見つかりません。
      • getComponentFamilies

        public IteratorSE<StringSE> getComponentFamilies()

        この RenderKit インスタンスでサポートされているコンポーネントファミリエントリに対して Iterator を返します。

        このメソッドのデフォルトの実装は、空の Iterator を返します

        戻り値:
        コンポーネントファミリエントリに対して Iterator を返す
        導入:
        2.0
      • getRendererTypes

        public IteratorSE<StringSE> getRendererTypes​(StringSE componentFamily)

        指定されたコンポーネントファミリのレンダラー型エントリに対して Iterator を返します。

        指定された componentFamily がこの RenderKit 実装に認識されていない場合は、空の Iterator を返します。

        このメソッドのデフォルトの実装は、空の Iterator を返します

        パラメーター:
        componentFamily - getComponentFamilies() によって返される Iterator のメンバーの 1 つ。
        戻り値:
        レンダラー型上の Iterator 
        導入:
        2.0