| |||||||
FRAMES NO FRAMES |
Render the markup for a <script>
element that renders the script Resource
specified by the optional name
attribute and library
attributes.
The implementation of this renderer must have a @ListenerFor
annotation attached to it, at the class level, declaring PostAddToViewEvent.class
as the value of the systemEventClass
attribute. The presence of this annotation on a renderer implies the renderer implements ComponentSystemEventListener
, which this renderer must do. The implementation of processEvent()
must extract the UIComponent
from the argument event and look for the presence of the key "target
" in the component's attribute Map
. If and only if such a key is present, the implementation of processEvent()
must pass the component to UIViewRoot.addComponentResource()
.
Decode Behavior
No action is required during decode for this renderer.
Encode Behavior
Common Algorithm for Obtaining A Resource to Render
This algorithm is used by all resource renderers to obtain a Resource
instance which is then rendered in a specific way depending on what kind of renderer is doing the encoding.
Look in the component attribute Map
for a value under the key name.
Look in the component attribute Map
for a value under the key library. This attribute is optional, therefore, library may be null
.
Create the resource by calling Application.getResourceHandler.createResource(name, library);
.
This algorithm is used by all resource renderers to render the resource.
encodeBegin()
must take no action.
Because this renderer returns true
from getRendersChildren()
, the encodeChildren() method must take the following action.
If there is no name attribute, and the argument component
has no children, and ProjectStage
is not ProjectStage.Production
, add a FacesMessage
for this component's clientId to the FacesContext
stating that if no name attribute is present, and no body content is present either, then the user should take action to correct this problem. In this case, encodeChildren()
must take no further action.
If there is no name attribute and the argument component
does have children, the renderer must ensure that those children are encoded as usual.
If there is a name attribute and the argument component
does have children, the renderer must log a descriptive localized message stating that the child content will be ignored. The resource referenced by the name attribute will be rendered in encodeEnd()
.
If there is a name attribute and the argument component
does not have children, encodeChildren()
must take no action.
encodeEnd()
must take specific action based on the specific kind of resource being rendered.
Use the algorithm Common Encode Behavior for encodeBegin()
, encodeChildren()
and getRendersChildren()
.
For encodeEnd()
, use the algorithm Common Algorithm for Obtaining A Resource to Render above to obtain a reference to the Resource
to be encoded.
If this is NOT the first time this Resource
has been referenced on this request take no action and return.
Render a script element. Call resource.getRequestPath()
. If the result contains a query string, take care to handle it correctly. Pass the request path to a call to encodeResourceURL()
on the ExternalContext
. Use the result as the value of the "src" attribute. Use the result from calling resource.getContentType()
as the value of the "type" attribute.
Tag Information | |
Tag Class | .Outputresource.ScriptTag |
TagExtraInfo Class | None |
Body Content | JSP |
Display Name | None |
Attributes | ||||
Name | Required | Request-time | Type | Description |
converter | false | false | javax.el.ValueExpression
(must evaluate to javax.faces.convert.Converter )
| Converter instance registered with this component. |
id | false | true | java.lang.String | The component identifier for this component. This value must be unique within the closest parent component that is a naming container. |
rendered | false | false | javax.el.ValueExpression
(must evaluate to boolean )
| Flag indicating whether or not this component should be rendered (during Render Response Phase), or processed on any subsequent form submit. The default value for this property is true. |
value | false | false | javax.el.ValueExpression
(must evaluate to java.lang.Object )
| The current value of this component. |
library | false | false | javax.el.ValueExpression
(must evaluate to java.lang.String )
| The libraryName for this resource. |
name | true | false | javax.el.ValueExpression
(must evaluate to java.lang.String )
| The resourceName for this resource. This attribute is required |
target | false | false | javax.el.ValueExpression
(must evaluate to java.lang.String )
| The target area for which this resource will be rendered. For example, target="head" would cause the resource to be rendered within the head element. If no value is specififed, the script element is rendered at the same point in the view where the tag is located. Currently supported values for this attribute are "head", "body", and "form". |
binding | false | false | javax.el.ValueExpression
(must evaluate to javax.faces.component.UIComponent )
| The ValueExpression linking this component to a property in a backing bean |
Variables | ||||
No Variables Defined. |
| |||||||
FRAMES NO FRAMES |