[ http://issues.apache.org/jira/browse/TOMAHAWK-36?page=all ]

Cagatay Civici reopened TOMAHAWK-36:
------------------------------------

      Assignee: Cagatay Civici  (was: Martin Marinschek)
             
The patch fails in cases where the children of these component do not render 
their children. An example would be;

<s:fieldset>
                <t:aliasBeansScope>
                        <t:aliasBean alias="#{aliasName}" 
value="#{SomeBean.someProperty}"></t:aliasBean>
                        <h:outputText value="You cant see me" />
                </t:aliasBeansScope>
</s:fieldset>

If these components are going to render their children, they should do it in 
panelGrid or panelGroup style using RendererUtils.

> t:div, t:span, s:fieldset should render children
> ------------------------------------------------
>
>                 Key: TOMAHAWK-36
>                 URL: http://issues.apache.org/jira/browse/TOMAHAWK-36
>             Project: MyFaces Tomahawk
>          Issue Type: Bug
>         Environment: tomcat 5.5.9 
>            Reporter: Dennis Byrne
>         Assigned To: Cagatay Civici
>            Priority: Minor
>             Fix For: 1.1.4-SNAPSHOT
>
>         Attachments: fieldset.diff, TOMAHAWK-36.patch
>
>
> 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

        

Reply via email to