public interface TagDecorator
関連する TagHandler
でコンパイルするために処理される前にタグを完全に変更する機能を提供します。
ランタイムは、decorate(jakarta.faces.view.facelets.Tag)
メソッドで次のアクションを実行するこのインターフェースのデフォルトの実装を提供する必要があります。
tag
引数の属性を調べます。どの属性も http://xmlns.jcp.org/jsf
名前空間にあると宣言されていない場合は、ViewHandler.FACELETS_DECORATORS_PARAM_NAME
context-param
の値から作成された TagDecorator
インスタンスのリストを繰り返し処理します(存在する場合)。エントリごとに、その decorate(jakarta.faces.view.facelets.Tag)
メソッドを呼び出し、引数 tag
を渡します。decorate(jakarta.faces.view.facelets.Tag)
メソッドから非 null
を返す最初のそのようなエントリは、反復を停止させる必要があります。
tag
引数の 1 つ以上の属性が http://xmlns.jcp.org/jsf
名前空間にある場合は、次の手順で説明するように decoratedTag への参照を取得し、前の手順で説明するように TagDecorator
インスタンスのリストを繰り返し処理しますが、decoratedTag を各呼び出しに渡します。decorate(jakarta.faces.view.facelets.Tag)
。
タグの名前空間が空の文字列または http://www.w3.org/1999/xhtml
以外の名前空間である場合は、FaceletException
をスローします。
localName を Tag.getLocalName()
からの戻り値とします。localName を使用して、次の表に基づいてデータ構造内のエントリを識別します。エントリが特定されたら、targetTag をそのエントリの「ターゲットタグ」列の値にします。
localName | セレクター属性 | ターゲットタグ |
---|---|---|
a | jsf:action | h:commandLink |
a | jsf:actionListener | h:commandLink |
a | jsf:value | h:outputLink |
a | jsf:outcome | h: リンク |
体 | h:body | |
ボタン | h:commandButton | |
ボタン | jsf:outcome | h: ボタン |
形 | h:form | |
頭 | h:head | |
イメージ | h:graphicImage | |
入力 | type="button" | h:commandButton |
入力 | type=" チェックボックス " | h:selectBooleanCheckbox |
入力 | type="color" | h: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" | h:inputFile |
入力 | type="hidden" | h:inputHidden |
入力 | type="password" | h:inputSecret |
入力 | type="reset" | h:commandButton |
入力 | type="submit" | h:commandButton |
入力 | type="*" | h:inputText |
ラベル | h:outputLabel | |
リンク | h:outputStylesheet | |
スクリプト | h:outputScript | |
select | multiple="*" | h:selectManyListbox |
select | h:selectOneListbox | |
textarea | h:inputTextArea |
同じ localName を持つ複数の行がある場合は、引数 tag
の属性と、テーブルの「セレクター属性」列の値を指定された順序で使用して、一致するエントリを見つけます。* のセレクター属性値は、任意の値を示します。表で、接頭辞 jsf : が付いたセレクター属性名は、タグが http://xmlns.jcp.org/jsf
名前空間にあるかのように扱われることを意味します。実際の Facelet ページでは、名前空間が重要であり、プレフィックスではありません。
一致するエントリが見つからない場合は、jsf:element
を targetTag の値とします。
引数 tag
のすべての属性を次のように変換します。まず、次の特性を持つ TagAttribute
の新しいインスタンスを作成します。場所: 引数から tag
の場所、名前空間: http://xmlns.jcp.org/jsf/passthrough
、ローカル名: Renderer.PASSTHROUGH_RENDERER_LOCALNAME_KEY
の値、修飾名: "p:" プレフィックス付きのローカル名と同じ、値: 引数 tag
のローカル名から。この TagAttribute
は elementNameTagAttribute とします。
引数ごとに、tag
の属性は、次の特性を持つ TagAttribute
への参照を取得します。議論のために、そのような属性を convertedTagAttribute とします。
convertedTagAttribute の場所: 引数 tag
からの場所。
現在の属性の名前空間が http://xmlns.jcp.org/jsf
の場合、convertedTagAttribute の修飾名は現在の属性のローカル名である必要があり、convertedTagAttribute の名前空間は空の文字列である必要があります。これは、このマークアップで表される UIComponent
インスタンスの適切なプロパティとして現在の属性を設定する効果があります。
現在の属性の名前空間が空ではなく、引数 tag
の名前空間と異なる場合は、現在の属性を convertedTagAttribute とします。
それ以外の場合は、現在の属性の名前空間が http://xmlns.jcp.org/jsf/passthrough
であると想定します。ConvertedTagAttribute の修飾名は、接頭辞 "p:" が付いた現在の属性のローカル名です。ConvertedTagAttribute の名前空間は http://xmlns.jcp.org/jsf/passthrough
である必要があります。
elementNameTagAttribute とすべて convertedTagAttribute S を含む TagAttributes
インスタンスを作成します。
次の特性を持つ新しい Tag
インスタンスを作成します。
場所: 引数 tag
の場所から。
名前空間: targetTag のプレフィックスが "h" の場合、http://xmlns.jcp.org/jsf/html
; targetTag のプレフィックスが "jsf" の場合、http://xmlns.jcp.org/jsf
。
ローカル名: ターゲットタグ列のローカル名。
属性: 前のステップの TagAttributes
。
この新しい Tag
インスタンスを convertedTag とします。
この装飾プロセスから返された Tag
インスタンスは、「Jakarta Server Faces 2.0 のフェイスレットの ViewDeclarationLanguage 実装の仕様」というタイトルの仕様書のセクションに従って、最終的に FaceletHandler
インスタンスに渡される必要があります。
修飾子と型 | メソッドと説明 |
---|---|
Tag | decorate(Tag tag) 処理された場合は、新しい Tag インスタンスを返します。それ以外の場合は、null を返します。 |
Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.