@Retention(value=RUNTIME) @Target(value=TYPE) @Inherited @Repeatable(value=ResourceDependencies.class) public @interface ResourceDependency
Instances of UIComponent
or Renderer
that have this annotation (or ResourceDependencies
attached 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 the UIViewRoot
in which
this component or renderer is used.
The default implementation must support attaching this annotation
to UIComponent
or Renderer
classes. In both cases, the event that
precipitates the processing of this annotation is the insertion of a
UIComponent
instance 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 UIOutput
instance by passing
javax.faces.Output
. to Application.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 setRendererType
on the UIOutput
instance, passing the renderer-type.
Obtain the Map
of attributes from the
UIOutput
component by calling UIComponent.getAttributes()
.
Store the name into the attributes Map
under 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
, call UIViewRoot.addComponentResource(javax.faces.context.FacesContext,
javax.faces.component.UIComponent)
, passing the UIOutput
instance as the second argument.
Example:
@ResourceDependency(library="corporate", name="colorAndMedia.css"),
Modifier and Type | Required Element and Description |
---|---|
String |
name
The resourceName of the
resource pointed to by this |
Modifier and Type | Optional Element and Description |
---|---|
String |
library
The libraryName in which
the resource pointed to by this |
String |
target
The value given for this attribute
will be passed as the "target" argument to |
public abstract String name
The resourceName of the
resource pointed to by this ResourceDependency
. It
is valid to have EL Expressions in the value of this attribute,
as long as the expression resolves to an instance of the expected
type.
public abstract String library
The libraryName in which
the resource pointed to by this ResourceDependency
resides. If not specified, defaults to the empty string. It is
valid to have EL Expressions in the value of this attribute, as
long as the expression resolves to an instance of the expected
type.
public abstract String target
The value given for this attribute
will be passed as the "target" argument to UIViewRoot.addComponentResource(javax.faces.context.FacesContext,
javax.faces.component.UIComponent, java.lang.String)
. If this
attribute is specified, UIViewRoot.addComponentResource(javax.faces.context.FacesContext,javax.faces.component.UIComponent)
must be called instead, as described above. It is valid to have
EL Expressions in the value of this attribute, as long as the
expression resolves to an instance of the expected type.
Copyright © 2019 JBoss by Red Hat. All rights reserved.