<p>I suppose it depends on whether insertFacet attaches a facet to the parent component or whether it inserts the contents of the facet inline. I suspect the latter. In that case, you woud need to wrap insertFacet in <f:facet>, right?</p>
<p>- Dan Allen</p>
<p>Sent from my Android-powered G1 phone:<br>
An open platform for carriers, developers<br>
and consumers.</p>
<p><blockquote type="cite">On Sep 15, 2009 6:43 PM, "Andy Schwartz" <<a href="mailto:andy.schwartz@oracle.com">andy.schwartz@oracle.com</a>> wrote:<br><br>Gang -<br>
<br>
While looking at #{cc} expression handling, I played around with some simple composite components and noticed the following behavior.<br>
<br>
If I define a composite component, foo:outer, that accepts a facet:<br>
<br>
<composite:interface><br>
<composite:facet name="caption"/><br>
</composite:interface><br>
<br>
And then use the component, specifying the facet:<br>
<br>
<foo:outer><br>
<f:facet name="caption"><br>
<h:outputText value="Hello, Facet! (Outer)"/><br>
</f:facet><br>
</foo:outer><br>
<br>
<br>
I find that things work as expected if I render the facet in the foo:outer implementation:<br>
<br>
<composite:implementation><br>
<composite:renderFacet name="caption"/><br>
</composite:implementation><br>
<br>
<br>
And also work just fine if I pass the facet into a Java-based (non-composite) component:<br>
<br>
<composite:implementation><br>
<h:panelGrid><br>
<composite:insertFacet name="caption"/><br>
</h:panelGrid><br>
</composite:implementation><br>
<br>
<br>
However, if I define a second component, foo:inner, that exposes the same facet:<br>
<br>
<composite:interface><br>
<composite:facet name="caption"/><br>
</composite:interface><br>
<br>
<composite:implementation><br>
<composite:renderFacet name="caption"/><br>
</composite:implementation><br>
<br>
And then attempt to pass the facet into the foo:inner component from the foo:outer implementation:<br>
<br>
<composite:implementation><br>
<foo:inner><br>
<composite:insertFacet name="caption"/><br>
</foo:inner><br>
</composite:implementation><br>
<br>
<br>
My expectation is that the facet would be inserted in to the foo:inner composite component (via the <composite:insertFacet name="caption">) and then rendered by the foo:inner implementation (via the <composite:renderFacet name="caption">). However, the facet do contents do not appear in the rendered output.<br>
<br>
I wasn't sure whether this is a spec issue, implementation or user error, and have not had a chance to debug further. Want to raise this here in case anyone could comment.<br>
<br>
FWIW, this is running against the Mojarra trunk. I have not tested MyFaces. (I have attached the two composite components.)<br><font color="#888888">
<br>
Andy<br>
<br>
</font></blockquote></p>