Componentes compostos JSF2: # # cc.childCount} e <composite: insertChildren /> são mutuamente exclusivos?

Eu simplesmente não entendo: se eu quero que meu componente composto insira filhos, euusa <composite:insertChildren/> mas#{cc.childCount} sempre retorna0 nesse caso. Por outro lado, se eunão us <composite:insertChildren/> Eu sempre acertochildCount sem filhos sendo renderizados. Por que isso está acontecendo?

Tudo o que quero fazer no meu componente é renderizar algum painel "padrão" se não houver filhos e não o renderizar em outro caso - comportamento semelhante ao<ui:insert name="param_name">default value</ui:insert>. Então, eu preciso de insertChildren e childCount que parecem não funcionar juntos.

Aqui está o código:

<my:test>
  <h:outputText value="child1" rendered="#{some.trueValue}"/>
  <h:outputText value="child2" rendered="#{some.trueValue}"/>
<my:test>

Se eu usar a implementação abaixo, recebo2 processado como esperado

<composite:implementation>
  <h:outputText value="#{cc.childCount}"/> 
</composite:implementation>

QuandoinsertChildren é usado, recebo os dois filhos e0 no fim

<composite:implementation>
  <composite:insertChildren/>
  <h:outputText value="#{cc.childCount}"/> 
</composite:implementation>

Whereas meu objetivo é:

<composite:implementation>
  <composite:insertChildren/>
  <h:panelGroup rendered="#{cc.childCount == 0}">
    some default data
  </h:panelGroup> 
</composite:implementation>

Algumas ideias / soluções alternativas?

questionAnswers(3)

yourAnswerToTheQuestion