Annotation Type ResourceDependency
-
@Retention(RUNTIME) @Target(TYPE) @Inherited @Repeatable(ResourceDependencies.class) public @interface ResourceDependency
Instances of
UIComponentorRendererthat have this annotation (orResourceDependenciesattached at the class level will automatically have a resource dependency added so that the named resource will be present in user agent's view of theUIViewRootin which this component or renderer is used.The default implementation must support attaching this annotation to
UIComponentorRendererclasses. In both cases, the event that precipitates the processing of this annotation is the insertion of aUIComponentinstance into the view hierarchy on an initial request for a view. When that event happens, the following action must be taken.-
If this annotation is not present on the class in question, no action must be taken.
-
Create a
UIOutputinstance by passingjakarta.faces.Output. toApplication.createComponent(java.lang.String). -
Get the annotation instance from the class and obtain the values of the name, library, and target attributes.
-
If library is the empty string, let library be
null. -
If target is the empty string, let target be
null. -
Obtain the renderer-type for the resource name by passing name to
ResourceHandler.getRendererTypeForResourceName(java.lang.String). -
Call
setRendererTypeon theUIOutputinstance, passing the renderer-type. -
Obtain the
Mapof attributes from theUIOutputcomponent by callingUIComponent.getAttributes(). -
Store the name into the attributes
Mapunder the key "name". -
If library is non-
null, store it under the key "library". -
If target is non-
null, store it under the key "target". -
Otherwise, if target is
null, callUIViewRoot.addComponentResource(jakarta.faces.context.FacesContext, jakarta.faces.component.UIComponent), passing theUIOutputinstance as the second argument.
Example:
@ResourceDependency(library="corporate", name="colorAndMedia.css"),- Since:
- 2.0
-
-
-
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description StringlibraryThe libraryName in which the resource pointed to by thisResourceDependencyresides.StringtargetThe value given for this attribute will be passed as the "target" argument toUIViewRoot.addComponentResource(jakarta.faces.context.FacesContext, jakarta.faces.component.UIComponent, java.lang.String).
-
-
-
Element Detail
-
name
String name
The resourceName of the resource pointed to by this
ResourceDependency. It is valid to have Jakarta Expression Language Expressions in the value of this attribute, as long as the expression resolves to an instance of the expected type.- Returns:
- the name.
-
-
-
library
String library
The libraryName in which the resource pointed to by this
ResourceDependencyresides. If not specified, defaults to the empty string. It is valid to have Jakarta Expression Language Expressions in the value of this attribute, as long as the expression resolves to an instance of the expected type.- Returns:
- the library.
- Default:
- ""
-
-
-
target
String target
The value given for this attribute will be passed as the "target" argument to
UIViewRoot.addComponentResource(jakarta.faces.context.FacesContext, jakarta.faces.component.UIComponent, java.lang.String). If this attribute is specified,UIViewRoot.addComponentResource(jakarta.faces.context.FacesContext,jakarta.faces.component.UIComponent)must be called instead, as described above. It is valid to have Jakarta Expression Language Expressions in the value of this attribute, as long as the expression resolves to an instance of the expected type.- Returns:
- the target.
- Default:
- ""
-
-