[ http://issues.apache.org/jira/browse/MYFACES-993?page=all ] Mike Kienenberger reopened MYFACES-993: ---------------------------------------
The message thread was Why do h:message Tags Need to be enclosed in h:panelGroup or h:panelGrid Tags http://www.mail-archive.com/users%40myfaces.apache.org/msg13559.html I'll reopen and reclassify this issue. > 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
