I am trying to use a custom component that needs to output its source
at the bottom of the page for HTML reasons. I created the component
and had it use the HtmlBufferResponseWriterWrapper class to buffer the
output so I could delay the output until a custom component at the end
of the page could render the contents.

Most things are working except for t:div and some of my custom
components that extend it (org.apache.myfaces.custom.div.Div).

What happens is that the tag is rendered, but the contents are not.
Here is the component tree I used for testing

<my:custom>
 <t:div>A<t:div>B</t:div>C</t:div>
 <div>D<div>E</div>F</div>
 <t:panelGroup styleClass="test">
   G<t:panelGroup styleClass="test">H</t:panelGroup>I
 </t:panelGroup>
</my:custom>

<!-- render the custom controls from the buffer here -->

The output I get is:

<!-- custom start HTML -->
<div></div>
<div>D<div>E</div>F</div>
<span class="test">G<span class="test">H</span>I</span>

The "normal" DIV tags are fine, the panel group components are fine,
it is just the DIV components that skip the rendering of their
children.

In my custom component renderer, I am returning true for
getRendersChildren() and letting Renderer to take care of the default
children rendering.

Relavent JARs in my environment:
MyFaces Core 1.1.3
MyFaces Tomahawk 1.1.2
Facelets 1.0.14

Any idea why the t:div is not rendering it's children/content?

Thanks,
Andrew

Reply via email to