public abstract class UIComponentELTag extends UIComponentClassicTagBase implements Tag
UIComponentELTag
specializes its superclass to allow for properties that take their values from Jakarta
Expression Language expressions.
This tag is designed for use with Faces version 1.2 and Jakarta Server Pages version 2.1 containers.
bodyContent, pageContext, UNIQUE_ID_PREFIX
log
EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE
EVAL_BODY_BUFFERED, EVAL_BODY_TAG
EVAL_BODY_AGAIN
Constructor and Description |
---|
UIComponentELTag() |
Modifier and Type | Method and Description |
---|---|
protected UIComponent |
createComponent(FacesContext context,
java.lang.String newId)
Create and return a new child component of the type returned by calling
getComponentType() . |
protected ELContext |
getELContext()
Return the
ELContext for the FacesContext for this request. |
protected boolean |
hasBinding()
Return
true if this component has a non-null binding attribute. |
void |
release()
Release any resources allocated during the execution of this tag handler.
|
void |
setBinding(ValueExpression binding)
Set the value expression for our component.
|
protected void |
setProperties(UIComponent component)
Override properties and attributes of the specified component, if the corresponding properties of this tag handler
instance were explicitly set.
|
void |
setRendered(ValueExpression rendered)
Set an override for the rendered attribute.
|
addChild, addFacet, addVerbatimAfterComponent, addVerbatimBeforeComponent, createVerbatimComponent, createVerbatimComponentFromBodyContent, doAfterBody, doEndTag, doInitBody, doStartTag, encodeBegin, encodeChildren, encodeEnd, findComponent, getBodyContent, getComponentInstance, getCreated, getCreatedComponents, getDoAfterBodyValue, getDoEndValue, getDoStartValue, getFacesContext, getFacesJspId, getFacetName, getId, getIndexOfNextChildTag, getJspId, getParent, getParentUIComponentClassicTagBase, getPreviousOut, setBodyContent, setId, setJspId, setPageContext, setParent, setupResponseWriter
getComponentType, getRendererType
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
doEndTag, doStartTag, getParent, setPageContext, setParent
public void setBinding(ValueExpression binding) throws JspException
Set the value expression for our component.
binding
- The new value expressionJspException
- if an error occursprotected boolean hasBinding()
UIComponentClassicTagBase
Return true
if this component has a non-null
binding attribute. This method is necessary to
allow subclasses that expose the binding
property as an Faces 1.1 style Expression Language property as
well as subclasses that expose it as a Jakarta Expression Language API property.
hasBinding
in class UIComponentClassicTagBase
public void setRendered(ValueExpression rendered)
Set an override for the rendered attribute.
rendered
- The new value for rendered attributeprotected ELContext getELContext()
Return the ELContext
for the FacesContext
for this request.
This is a convenience for getFacesContext().getELContext()
.
getELContext
in class UIComponentTagBase
FacesContext
public void release()
Release any resources allocated during the execution of this tag handler.
release
in interface Tag
release
in class UIComponentClassicTagBase
protected void setProperties(UIComponent component)
Override properties and attributes of the specified component, if the corresponding properties of this tag handler
instance were explicitly set. This method must be called ONLY if the specified UIComponent
was in fact created during the execution of this tag handler instance, and this call will occur
BEFORE the UIComponent
is added to the view.
Tag subclasses that want to support additional set properties must ensure that the base class
setProperties()
method is still called. A typical implementation that supports extra properties
foo
and bar
would look something like this:
protected void setProperties(UIComponent component) { super.setProperties(component); if (foo != null) { component.setAttribute("foo", foo); } if (bar != null) { component.setAttribute("bar", bar); } }
The default implementation overrides the following properties:
rendered
- Set if a value for the rendered
property is specified for this tag handler
instance.rendererType
- Set if the getRendererType()
method returns a non-null value.setProperties
in class UIComponentClassicTagBase
component
- UIComponent
whose properties are to be overriddenprotected UIComponent createComponent(FacesContext context, java.lang.String newId) throws JspException
Create and return a new child component of the type returned by calling getComponentType()
. If this
UIComponentELTag
has a non-null binding
attribute, this is done by call
Application.createComponent(java.lang.String)
with the ValueExpression
created for the binding
attribute,
and the ValueExpression
will be stored on the component. Otherwise, Application.createComponent(java.lang.String)
is
called with only the component type. Finally, initialize the components id and other properties.
createComponent
in class UIComponentClassicTagBase
context
- FacesContext
for the current requestnewId
- id of the componentJspException
- if the component cannot be created