2010-11-23 22 views
0

J'ai un UIComponent personnalisé, ce qui rend OK lorsqu'il est appelé directement à partir du modèle de base facelet (je suppose que cela en fait un enfant direct de UIComponentBodyTag). Cependant, quand il est appelé dans un composant composite, rien ne se passe. Je n'obtiens aucune exception, rien. Tout le reste se passe bien.Ajout de JSF UIComponent en tant que composant composite enfant ne restitue rien

Ainsi, alors que cela fonctionne:

<h:body> 
    <x:myUiComponent /> 
</h:body> 

Cela ne fonctionne pas:

<h:body> 
    <demo:uiComponentWrapper /> 
</h:body> 

uiComponentWrapper.xhtml:

<cc:implementation> 
    Before [<x:myUiComponent />] After 
</cc:implementation> 

Il imprime simplement Before [] After.

Par ma logique, cela devrait fonctionner. Qu'est-ce que je rate? Exécution de Mojarra 2.0.2.

+0

Aucune réponse jusqu'à présent, donc je conclus qu'il pourrait s'agir d'un bug ou d'une erreur de configuration. Toutes les suggestions sont toujours les bienvenues! –

Répondre

0

Il semble que UIComponentencodeAll(...) est appelée lorsqu'elle est ajoutée à la page normalement. Toutefois, encodeBegin(...) est appelée à la place, lorsque le composant est ajouté en tant qu'enfant d'un composant composite. Mon bâtiment de composant a été défini dans encodeAll(...), qui n'a pas été exécuté lors de l'ajout du composant en tant que composant enfant composite.

Donc, c'est juste différent dans différents contextes. Pour la raison, pourquoi il en est ainsi, voir question about exactly that.