インターフェース 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 select multiple="*" 時間: 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.html
、targetTag のプレフィックスが "faces" の場合はjakarta.faces
。ローカル名: ターゲットタグ列のローカル名。
属性: 前のステップの
TagAttributes
。この新しい
Tag
インスタンスを convertedTag とします。
この装飾プロセスから返された
Tag
インスタンスは、Jakarta Faces Specification Document セクション 10.2.1「Jakarta Faces の Facelets の ViewDeclarationLanguage 実装の仕様」に従って、最終的にFaceletHandler
インスタンスに渡される必要があります。
メソッドのサマリー
すべてのメソッド インスタンスメソッド 抽象メソッド 修飾子と型 メソッド 説明 Tag
decorate(Tag tag)
処理された場合は、新しい Tag インスタンスを返します。それ以外の場合は、null を返します。