Tho*_*hor 6 java facelets composite-component jsf-2
我必须将复合组件迁移到自定义组件.此示例相当简化,但演示了问题:我的component(my:test
)的子节点需要在另一个组件中呈现.my:testC
作为一个我不想使用的例子,复合材料看起来像这样
<composite:implementation>
<p:panel>
<composite:insertChildren/>
</p:panel>
</composite:implementation>
Run Code Online (Sandbox Code Playgroud)
显然,(我希望至少我这个假设是正确的),我不能简单地呈现p:panel
在encodeBegin
.
@FacesComponent("test")
public class Test extends UIPanel
{
@Override
public void encodeBegin(FacesContext context) throws IOException
{
// ??
}
@Override
public void encodeEnd(FacesContext context) throws IOException
{
// ??
}
}
Run Code Online (Sandbox Code Playgroud)
我希望以my:test
这样的方式使用:
<my:test>
<h:outputText value="some Text"/>
</my:test>
Run Code Online (Sandbox Code Playgroud)
输出应该与使用相同my:testC
:在PrimeFaces面板中呈现的一些文本.如何编码p:panel
Java类的用法?
小智 0
你观察得正确。您不能简单地在自定义组件中呈现“p:panel”或任何其他 jsf 标记。
然而你可以做什么:
使用 Application 实例实例化子组件,将其作为构面或子组件添加到自定义组件中,然后在您自己的渲染器中对其调用编码。
直接渲染 HTML
使用当前 JSF 中应该可用的 Facelet API(我从未实际使用过它)
使用任何其他模板处理(如速度或 freemarker)来呈现 HTML。
归档时间: |
|
查看次数: |
179 次 |
最近记录: |