UIComponentTagBase
is the base class for all JSP tags that use the "classic" JSP tag interface that correspond to a {@link javax.faces.component.UIComponent} instance inthe view. In Faces 1.2, all component tags are BodyTag
instances to allow for the execution of the page to build the component tree, but not render it. Rendering happens only after the component tree is completely built.
{@link UIComponentTag} extendsUIComponentClassicTagBase
to add support for properties that conform to the Faces 1.1 EL.
{@link UIComponentELTag} extendsUIComponentClassicTagBase
class to add support for properties that conform to the EL API.
The default implementation allows the proper interweaving of template text, non-Faces JSP tag output, and Faces component tag output in the same page, as expected by the page author.
The CASE markers in the following example will be cited in the method descriptions of this class.
CASE 1 describes template text and/or non-component custom tag output occurring as the child of a component tag, but before the first component tag child of that component tag.
CASE 2 describes template text and/or non-component custom tag output occurring between two sibling component tags.
CASE 3 describes template text and/or non-component custom tag output occurring as the child content of an <f:verbatim> tag at any point in the page.
CASE 4 describes template text and/or non-component custom tag output occurring between the last child component tag and its enclosing parent component tag's end tag.
<h:panelGrid style="color:red" border="4" columns="2"> CASE 1 <h:outputText value="component 1"/> CASE 2 <h:outputText value="component 2"/> <f:verbatim>CASE 3</f:verbatim> <c:out value="${pageScope.CASE4}" /> </h:panelGrid>
The preceding arrangement of faces component tags, must yield markup that will render identically to the following (assuming that ${pageScope.CASE4}
evaluates to "CASE 4
" without the quotes).
<table border="4" style="color:red"> <tbody> <tr><td>CASE 1</td></tr> <tr><td>component 1</td></tr> <tr><td>CASE 2</td> <tr><td>component 2</td></tr> <tr><td>CASE 3</td> <td>CASE 4</td></tr> </tbody> </table>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|