インターフェース TagDecorator


  • public interface TagDecorator

    関連する TagHandler でコンパイルするために処理される前にタグを完全に変更する機能を提供します

    ランタイムは、decorate(jakarta.faces.view.facelets.Tag) メソッドで次のアクションを実行するこのインターフェースのデフォルトの実装を提供する必要があります。

    • tag 引数の属性を調べます。どの属性も  jakarta.faces 名前空間にあると宣言されていない場合は、ViewHandler.FACELETS_DECORATORS_PARAM_NAME context-param の値から作成された TagDecorator インスタンスのリストを繰り返し処理します(存在する場合)。エントリごとに、その decorate(jakarta.faces.view.facelets.Tag) メソッドを呼び出し、引数 tag を渡します。decorate(jakarta.faces.view.facelets.Tag) メソッドから非 null を返す最初のそのようなエントリは、反復を停止させる必要があります。

    • tag 引数の 1 つ以上の属性が jakarta.faces 名前空間にある場合は、次の手順で説明するように decoratedTag への参照を取得し、前の手順で説明したように TagDecorator インスタンスのリストを反復処理しますが、decorate(jakarta.faces.view.facelets.Tag) への各呼び出しに decoratedTag を渡します。

      • タグの名前空間が空の文字列または http://www.w3.org/1999/xhtml 以外の名前空間である場合は、FaceletException をスローします。

      • localName を Tag.getLocalName() からの戻り値とします。localName を使用して、次の表に基づいてデータ構造内のエントリを識別します。エントリが識別されたら、targetTag をそのエントリの「ターゲットタグ」列の値とします。

        localName とセレクタ属性からタグへのマッピング
        localName セレクター属性 ターゲットタグ
        a 面: アクション 時間: commandLink
        a 顔: actionListener 時間: commandLink
        a 面: 値 時間: outputLink
        a 面: 結果 h: リンク
        h:body
        ボタン 時間: commandButton
        ボタン 面: 結果 h: ボタン
        h:form
        h:head
        イメージ 時間: graphicImage
        入力 type="button" 時間: commandButton
        入力 type=" チェックボックス " 時間: selectBooleanCheckbox
        入力 type="color" 時間: inputText
        入力 type="date"
        入力 type="datetime"
        入力 type="datetime-local"
        入力 type="email"
        入力 type="month"
        入力 type="number"
        入力 type="range"
        入力 type="search"
        入力 type="time"
        入力 type="url"
        入力 type="week"
        入力 type="file" 時間: inputFile
        入力 type="hidden" 時間: inputHidden
        入力 type="password" 時間: inputSecret
        入力 type="reset" 時間: commandButton
        入力 type="submit" 時間: commandButton
        入力 type="*" 時間: inputText
        ラベル 時間: outputLabel
        リンク 時間: outputStylesheet
        スクリプト 時間: outputScript
        selectmultiple="*" 時間: selectManyListbox
        select 時間: selectOneListbox
        textarea 時間: inputTextArea

        同じ localName を持つ行が複数ある場合は、引数 tag の属性と表の「セレクター属性」列の値を指定された順序で使用して、一致するエントリを検索します。セレクター属性値 * は任意の値を示します。表では、faces : で始まるセレクター属性名は、タグが  jakarta.faces 名前空間にあるかのように扱われることを意味します。実際の Facelet ページでは、名前空間が重要であり、プレフィックスは重要ではありません。

        一致するエントリが見つからない場合は、faces:element を targetTag の値とする

      • 引数 tag のすべての属性を次のように変換します。まず、次の特性を持つ TagAttribute の新しいインスタンスを作成します: 場所: 引数  tag の場所から、名前空間:  jakarta.faces.passthrough、ローカル名: Renderer.PASSTHROUGH_RENDERER_LOCALNAME_KEY の値、修飾名: ローカル名と同じでプレフィックスが "p:" のもの、値: 引数 tag のローカル名から。この TagAttribute を elementNameTagAttribute とします。

        引数 tag の属性ごとに、次の特性を持つ TagAttribute への参照を取得します。説明のため、このような属性を convertedTagAttribute とします。

        • convertedTagAttribute の場所: 引数 tag の場所から。

        • 現在の属性の名前空間が  jakarta.faces の場合、convertedTagAttribute の修飾名は現在の属性のローカル名でなければならず、convertedTagAttribute の名前空間は空の文字列でなければなりません。これにより、現在の属性がこのマークアップによって表される UIComponent インスタンスの適切なプロパティとして設定されます。

        • 現在の属性の名前空間が空でなく、引数 tag の名前空間と異なる場合、現在の属性は convertedTagAttribute になります。

        • それ以外の場合、現在の属性の名前空間は  jakarta.faces.passthrough であると想定します。ConvertedTagAttribute の修飾名は、現在の属性のローカル名にプレフィックス "p:" が付いたものです。convertedTagAttribute の名前空間は  jakarta.faces.passthrough である必要があります。

        elementNameTagAttribute とすべての convertedTagAttribute を含む TagAttributes インスタンスを作成します。

      • 次の特性を持つ新しい Tag インスタンスを作成します。

        場所: 引数 tag の場所から。

        名前空間: targetTag のプレフィックスが "h" の場合は  jakarta.faces.htmltargetTag のプレフィックスが "faces" の場合は jakarta.faces

        ローカル名: ターゲットタグ列のローカル名。

        属性: 前のステップの TagAttributes

        この新しい Tag インスタンスを convertedTag とします。

    この装飾プロセスから返された Tag インスタンスは、Jakarta Faces Specification Document セクション 10.2.1「Jakarta Faces の Facelets の ViewDeclarationLanguage 実装の仕様」に従って、最終的に FaceletHandler インスタンスに渡される必要があります。

    • メソッドの詳細

      • decorate

        Tag decorate​(Tag tag)
        処理された場合は、新しい Tag インスタンスを返します。それ以外の場合は、null を返します。
        パラメーター:
        tag - 飾るタグ
        戻り値:
        装飾されたタグ、それ以外の場合は null