javax.faces.webapp

## Class UIComponentELTag

- java.lang.Object
- - javax.faces.webapp.UIComponentTagBase
  - - javax.faces.webapp.UIComponentClassicTagBase
    - - javax.faces.webapp.UIComponentELTag

- All Implemented Interfaces:
    BodyTag, IterationTag, JspIdConsumer, JspTag, Tag

      public abstract class UIComponentELTag
      extends UIComponentClassicTagBase
      implements Tag

  `UIComponentELTag` specializes its superclass to allow for properties that take their values from EL API expressions.

  This tag is designed for use with Faces version 1.2 and JSP version 2.1 containers.

- - ### Field Summary

    - ### Fields inherited from class javax.faces.webapp.UIComponentClassicTagBase

      `bodyContent, pageContext, UNIQUE_ID_PREFIX`

    - ### Fields inherited from class javax.faces.webapp.UIComponentTagBase

      `log`

    - ### Fields inherited from interface javax.servlet.jsp.tagext.Tag

      `EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE`

    - ### Fields inherited from interface javax.servlet.jsp.tagext.BodyTag

      `EVAL_BODY_BUFFERED, EVAL_BODY_TAG`

    - ### Fields inherited from interface javax.servlet.jsp.tagext.IterationTag

      `EVAL_BODY_AGAIN`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `UIComponentELTag()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected UIComponent` | `createComponent(FacesContext context, 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.

    - ### Methods inherited from class javax.faces.webapp.UIComponentClassicTagBase

      `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`

    - ### Methods inherited from class javax.faces.webapp.UIComponentTagBase

      `getComponentType, getRendererType`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface javax.servlet.jsp.tagext.Tag

      `doEndTag, doStartTag, getParent, setPageContext, setParent`

- - ### Constructor Detail

    - #### UIComponentELTag

          public UIComponentELTag()

  - ### Method Detail

    - #### setBinding

          public void setBinding(ValueExpression binding)
                          throws JspException

      Set the value expression for our component.

      Parameters:
        `binding` - The new value expression
      Throws:
        `JspException` - if an error occurs

    - #### hasBinding

          protected boolean hasBinding()

      Description copied from class: `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 EL property as well as subclasses that expose it as an EL API property.

      Specified by:
        `hasBinding` in class `UIComponentClassicTagBase`

    - #### setRendered

          public void setRendered(ValueExpression rendered)

      Set an override for the rendered attribute.

      Parameters:
        `rendered` - The new value for rendered attribute

    - #### getELContext

          protected ELContext getELContext()

      Return the `ELContext` for the `FacesContext` for this request.

      This is a convenience for `getFacesContext().getELContext()`.

      Overrides:
        `getELContext` in class `UIComponentTagBase`

    - #### release

          public void release()

      Release any resources allocated during the execution of this tag handler.

      Specified by:
        `release` in interface `Tag`
      Overrides:
        `release` in class `UIComponentClassicTagBase`

    - #### setProperties

          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.
      Specified by:
        `setProperties` in class `UIComponentClassicTagBase`
      Parameters:
        `component` - `UIComponent` whose properties are to be overridden

    - #### createComponent

          protected UIComponent createComponent(FacesContext context,
                                    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.

      Specified by:
        `createComponent` in class `UIComponentClassicTagBase`
      Parameters:
        `context` - `FacesContext` for the current request
        `newId` - id of the component
      Throws:
        `JspException`

Copyright © 1996-2013, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.