<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 &lt;f:facet&gt;, 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, &quot;Andy Schwartz&quot; &lt;<a href="mailto:andy.schwartz@oracle.com">andy.schwartz@oracle.com</a>&gt; 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>
&lt;composite:interface&gt;<br>
 &lt;composite:facet name=&quot;caption&quot;/&gt;<br>
&lt;/composite:interface&gt;<br>
<br>
And then use the component, specifying the facet:<br>
<br>
               &lt;foo:outer&gt;<br>
                 &lt;f:facet name=&quot;caption&quot;&gt;<br>
                   &lt;h:outputText value=&quot;Hello, Facet! (Outer)&quot;/&gt;<br>
                 &lt;/f:facet&gt;<br>
               &lt;/foo:outer&gt;<br>
<br>
<br>
I find that things work as expected if I render the facet in the foo:outer implementation:<br>
<br>
&lt;composite:implementation&gt;<br>
 &lt;composite:renderFacet name=&quot;caption&quot;/&gt;<br>
&lt;/composite:implementation&gt;<br>
<br>
<br>
And also work just fine if I pass the facet into a Java-based (non-composite) component:<br>
<br>
&lt;composite:implementation&gt;<br>
 &lt;h:panelGrid&gt;<br>
   &lt;composite:insertFacet name=&quot;caption&quot;/&gt;<br>
 &lt;/h:panelGrid&gt;<br>
&lt;/composite:implementation&gt;<br>
<br>
<br>
However, if I define a second component, foo:inner, that exposes the same facet:<br>
<br>
&lt;composite:interface&gt;<br>
 &lt;composite:facet name=&quot;caption&quot;/&gt;<br>
&lt;/composite:interface&gt;<br>
<br>
&lt;composite:implementation&gt;<br>
 &lt;composite:renderFacet name=&quot;caption&quot;/&gt;<br>
&lt;/composite:implementation&gt;<br>
<br>
And then attempt to pass the facet into the foo:inner component from the foo:outer implementation:<br>
<br>
&lt;composite:implementation&gt;<br>
 &lt;foo:inner&gt;<br>
   &lt;composite:insertFacet name=&quot;caption&quot;/&gt;<br>
 &lt;/foo:inner&gt;<br>
&lt;/composite:implementation&gt;<br>
<br>
<br>
My expectation is that the facet would be inserted in to the foo:inner composite component (via the &lt;composite:insertFacet name=&quot;caption&quot;&gt;) and then rendered by the foo:inner implementation (via the &lt;composite:renderFacet name=&quot;caption&quot;&gt;).  However, the facet do contents do not appear in the rendered output.<br>

<br>
I wasn&#39;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>