【发布时间】:2013-05-25 15:54:30
【问题描述】:
我必须将复合组件迁移到自定义组件。此示例相当简化,但演示了问题:我的组件 (my:test) 的子组件需要在另一个组件中呈现。复合my:testC,作为我不想使用的示例,看起来像这样
<composite:implementation>
<p:panel>
<composite:insertChildren/>
</p:panel>
</composite:implementation>
显然(至少我希望我的假设是正确的)我不能简单地在encodeBegin 中渲染p:panel。
@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()会自动完成这一切,但是第一段的最后一句话似乎另有说明,这令人困惑。 -
@BalusC 感谢您关注此问题。我已经更新了这个问题,希望现在能更好地理解。回答您的问题:我正在尝试对
p:panel的相同输出进行编码。
标签: java jsf-2 facelets composite-component