javax.faces.webapp
Class UIComponentELTag

java.lang.Object
  extended by javax.faces.webapp.UIComponentTagBase
      extended by javax.faces.webapp.UIComponentClassicTagBase
          extended by javax.faces.webapp.UIComponentELTag
All Implemented Interfaces:
javax.servlet.jsp.tagext.BodyTag, javax.servlet.jsp.tagext.IterationTag, javax.servlet.jsp.tagext.JspIdConsumer, javax.servlet.jsp.tagext.JspTag, javax.servlet.jsp.tagext.Tag

public abstract class UIComponentELTag
extends UIComponentClassicTagBase
implements javax.servlet.jsp.tagext.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
UIComponentELTag()
           
 
Method Summary
protected  UIComponent createComponent(FacesContext context, String newId)
          Create and return a new child component of the type returned by calling getComponentType().
protected  javax.el.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(javax.el.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(javax.el.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(javax.el.ValueExpression binding)
                throws javax.servlet.jsp.JspException

Set the value expression for our component.

Parameters:
binding - The new value expression
Throws:
javax.servlet.jsp.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(javax.el.ValueExpression rendered)

Set an override for the rendered attribute.

Parameters:
rendered - The new value for rendered attribute

getELContext

protected javax.el.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 javax.servlet.jsp.tagext.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:

Specified by:
setProperties in class UIComponentClassicTagBase
Parameters:
component - UIComponent whose properties are to be overridden

createComponent

protected UIComponent createComponent(FacesContext context,
                                      String newId)
                               throws javax.servlet.jsp.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:
javax.servlet.jsp.JspException


Copyright 2002-2009 Sun Microsystems, Inc. All Rights Reserved.