myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adam Winer (JIRA)" <...@myfaces.apache.org>
Subject [jira] Commented: (MYFACES-993) Programmatically added UIComponents forgotton
Date Mon, 02 Jan 2006 08:35:02 GMT
    [ http://issues.apache.org/jira/browse/MYFACES-993?page=comments#action_12361512 ] 

Adam Winer commented on MYFACES-993:
------------------------------------

I don't believe this is a bug.  <t:div> is not a rendersChildren component, and therefore
you may not dynamically add children to it.  Unfortunate, but true.  As you note, there is
a workaround, which is adding it to panelGroup.

JSF 1.2's overhauled JSP processing will resolve this issue, and MyFaces is behaving up to
spec as far as JSF 1.1 goes.

> Programmatically added UIComponents forgotton
> ---------------------------------------------
>
>          Key: MYFACES-993
>          URL: http://issues.apache.org/jira/browse/MYFACES-993
>      Project: MyFaces
>         Type: Bug
>   Components: General
>     Versions: 1.1.1
>  Environment: tomcat 5.5.9 
>     Reporter: Dennis Byrne

>
> In the following JSP, the test method of the test bean creates a HtmlOutputText, sets
a unique id, sets a value, and adds it to the children collection of the UIComponent of the
div tag.  However the new child component is never rendered.  The only child rendered is the
first one (w/ @value = "foo" ).
> <f:view>
>    <h:commandLink value="action" action="#{test.test}" />
>    <t:div binding="#{test.tag}">
>              <h:outputText value="foo" />
>    </t:div>
> </f:view>
> The reason why the first child (@value=foo) is always rendered has to do w/ the fact
that UIComponentTag.doEndTag ends up triggerring HtmlTextRendererBase.renderOutputText during
the render response phase.  This also explains why the programmatically added sibling is not
rendered - there is no UIComponentTag.doEndTag() .
> The programmatically added UIComponent will be rendered if you wrap t:div w/ a panelGrid
or panelGroup.  This is because the UIComponents for these two tags render their own children,
and MyFaces uses recursion in order to make sure the proper encoding methods are called on
*all* children.   

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message