Class 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 Jakarta Expression Language expressions.

This tag is designed for use with Faces version 1.2 and Jakarta Server Pages version 2.1 containers.

  • Constructor Details

    • UIComponentELTag

      public UIComponentELTag()
  • Method Details

    • 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 Expression Language property as well as subclasses that expose it as a Jakarta Expression Language API property.

      Specified by:
      hasBinding in class UIComponentClassicTagBase
      Returns:
      whether or not this component has a binding attribute
    • 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
      Returns:
      the {code ELContext} for this FacesContext
    • 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
      Returns:
      the created component
      Throws:
      JspException - if the component cannot be created