我需要将一个复合组件迁移到自定义组件。这个例子相当简化,但是展示了问题:我的组件(my:test
)的子元素需要在另一个组件中呈现。作为一个我不想使用的示例,复合组件my:testC
会像这样:
<composite:implementation>
<p:panel>
<composite:insertChildren/>
</p:panel>
</composite:implementation>
显然(至少我希望我的假设是正确的),我不能简单地在encodeBegin中呈现。
@FacesComponent("test")
public class Test extends UIPanel
{
@Override
public void encodeBegin(FacesContext context) throws IOException
{
// ??
}
@Override
public void encodeEnd(FacesContext context) throws IOException
{
// ??
}
}
我想要这样使用my:test
:
<my:test>
<h:outputText value="some Text"/>
</my:test>
输出应与使用
my:testC
相同:在PrimeFaces面板中呈现一些文本。我该如何在我的Java类中编码对p:panel
的使用?
<p:panel>
相同的输出?还是您具体询问如何重用<p:panel>
的默认编码器(渲染器)来完成该部分?子项根本不是问题,因为encodeChildren()
会自动完成所有操作,但是第一段的最后一句话似乎表明情况并非如此,这很令人困惑。 - BalusCp:panel
相同的输出。 - Thor