Devo eseguire la migrazione di un componente composito a un componente personalizzato. Questo esempio è piuttosto semplificato, ma dimostra il problema: i child del componente (my:test
) devono essere sottoposti a rendering in un altro componente. Il composito my:testC
, come un esempio che io non voglio usare, sarebbe simile a questaMigrazione del componente composito al componente personalizzato
<composite:implementation>
<p:panel>
<composite:insertChildren/>
</p:panel>
</composite:implementation>
Ovviamente (almeno spero di essere corretto con questa ipotesi) Non posso semplicemente rendere il p:panel
in encodeBegin
.
@FacesComponent("test")
public class Test extends UIPanel
{
@Override
public void encodeBegin(FacesContext context) throws IOException
{
// ??
}
@Override
public void encodeEnd(FacesContext context) throws IOException
{
// ??
}
}
voglio usare my:test
in un modo simile a questo:
<my:test>
<h:outputText value="some Text"/>
</my:test>
L'uscita dovrebbe essere lo stesso che utilizzare my:testC
: del testo reso in un pannello primefaces. Come posso codificare l'uso di p:panel
nella mia classe Java?
Non capisco il problema/domanda concreta (in realtà, non c'è una domanda concreta da nessuna parte). Stai chiedendo concretamente come codificare la stessa uscita di '' nel tuo componente personalizzato? Oppure stai chiedendo concretamente come riutilizzare il codificatore predefinito (renderer) di '' per quella parte? I bambini non rappresentano affatto il problema dato che 'encodeChildren()' fa tutto automaticamente, come mai l'ultima frase del primo paragrafo sembra indicare il contrario, il che è fonte di confusione. –
BalusC
@BalusC Grazie per aver guardato in questo numero. Ho aggiornato la domanda, speriamo che sia meglio capirlo ora. Per rispondere alla tua domanda: sto provando a codificare lo stesso output di 'p: panel'. – Thor