@RetentionSE(valueSE=RUNTIMESE) @TargetSE(valueSE=TYPESE) @InheritedSE @RepeatableSE(valueSE=ResourceDependencies.class) public @interface ResourceDependency
このアノテーション(またはクラスレベルでアタッチされた ResourceDependencies)を持つ UIComponent または Renderer のインスタンスには、リソースの依存関係が自動的に追加されるため、このコンポーネントまたはレンダラーが使用される UIViewRoot のユーザーエージェントのビューに名前付きリソースが表示されます。
デフォルトの実装では、このアノテーションを UIComponent または Renderer クラスにアタッチすることをサポートする必要があります。どちらの場合も、このアノテーションの処理を促進するイベントは、ビューの最初のリクエスト時にビュー階層に UIComponent インスタンスを挿入することです。そのイベントが発生した場合、次のアクションを実行する必要があります。
このアノテーションが問題のクラスに存在しない場合、アクションを実行する必要はありません。
javax.faces.Output を渡して、UIOutput インスタンスを作成します。Application.createComponent(java.lang.String) へ。
クラスからアノテーションインスタンスを取得し、名前、ライブラリ、ターゲット属性の値を取得します。
ライブラリが空の文字列の場合、ライブラリを null とします。
target が空の文字列の場合、target を null とします。
name を ResourceHandler.getRendererTypeForResourceName(java.lang.String) に渡して、リソース名のレンダラー型を取得します。
UIOutput インスタンスで setRendererType を呼び出し、レンダラー型を渡します。
UIComponent.getAttributes() を呼び出して、UIOutput コンポーネントから属性の Map を取得します。
キー "name" の属性 Map に名前を格納します。
ライブラリが null 以外の場合は、「ライブラリ」キーに保管してください。
ターゲットが null 以外の場合は、「ターゲット」キーに保存します。
それ以外の場合、ターゲットが null の場合は、UIViewRoot.addComponentResource(javax.faces.context.FacesContext, javax.faces.component.UIComponent) を呼び出し、UIOutput インスタンスを 2 番目の引数として渡します。
例:
@ResourceDependency(library="corporate", name="colorAndMedia.css"),
| 修飾子と型 | オプションの要素と説明 |
|---|---|
StringSE | library この |
StringSE | target この属性に指定された値は、「ターゲット」引数として |
public abstract StringSE name
この ResourceDependency によって指されるリソースの resourceName。式が期待される型のインスタンスに解決される限り、この属性の値に Jakarta Expression Language Expressions を含めることは有効です。
public abstract StringSE library
この ResourceDependency によって指されるリソースが存在する libraryName。指定されていない場合は、デフォルトで空の文字列になります。式が期待される型のインスタンスに解決される限り、この属性の値に Jakarta Expression Language Expressions を含めることは有効です。
public abstract StringSE target
この属性に指定された値は、「ターゲット」引数として UIViewRoot.addComponentResource(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.String) に渡されます。この属性を指定する場合は、上記のように、代わりに UIViewRoot.addComponentResource(javax.faces.context.FacesContext,javax.faces.component.UIComponent) を呼び出す必要があります。式が予期された型のインスタンスに解決される限り、この属性の値に Jakarta Expression Language Expressions を含めることは有効です。
Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.