Domanda

Ho un UIComponent personalizzato, che rende bene quando viene chiamato direttamente dal modello di base facelet (credo che questo lo rende un figlio diretto di UIComponentBodyTag). Tuttavia, quando viene richiamata all'interno di un componente composito, non succede nulla. Ottengo senza eccezioni, niente. Tutto il resto rende ok.

Così, mentre funziona:

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

Questo non funziona:

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

uiComponentWrapper.xhtml:

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

Esso stampa semplicemente come Before [] After.

Per la mia logica, questo dovrebbe funzionare. Che cosa mi manca? Esecuzione Mojarra 2.0.2.

È stato utile?

Soluzione

Sembra che UIComponent di encodeAll(...) viene chiamato quando viene aggiunto alla pagina normalmente. Tuttavia, encodeBegin(...) è chiamato invece, quando il componente viene aggiunto come figlio di un componente composito. Il mio edificio componente è stato definito in encodeAll(...), che non è stato eseguito quando si aggiunge il componente come un bambino componente composito.

Quindi è solo diversi in contesti diversi. Per la ragione, perché è così, vedi domanda su esattamente questo .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top