Java 将复合组件迁移到自定义组件
我必须将复合组件迁移到自定义组件。这个示例相当简单,但演示了问题:我的组件(Java 将复合组件迁移到自定义组件,java,jsf-2,facelets,composite-component,Java,Jsf 2,Facelets,Composite Component,我必须将复合组件迁移到自定义组件。这个示例相当简单,但演示了问题:我的组件(my:test)的子组件需要在另一个组件中呈现。组合my:testC,作为我不想使用的一个示例,看起来是这样的 <composite:implementation> <p:panel> <composite:insertChildren/> </p:panel> </composite:implementation> 我想以如下方式使用my:t
my:test
)的子组件需要在另一个组件中呈现。组合my:testC
,作为我不想使用的一个示例,看起来是这样的
<composite:implementation>
<p:panel>
<composite:insertChildren/>
</p:panel>
</composite:implementation>
我想以如下方式使用my:test
:
<my:test>
<h:outputText value="some Text"/>
</my:test>
输出应与使用
my:testC
:PrimeFaces面板中呈现的某些文本相同。如何对Java类中p:panel
的用法进行编码?您观察到了这一点。您不能简单地在自定义组件中呈现“p:panel”或任何其他jsf标记
但是,您可以做什么:
- 使用应用程序实例实例化子组件,将其作为方面或子项添加到自定义组件中,然后在自己的渲染器中对其调用encode
- 直接呈现HTML
- 使用应该在当前JSF中可用的FaceletAPI(我从未实际使用过)
- 使用任何其他模板处理(如velocity或freemarker)来呈现HTML
输出?或者,您是在具体询问如何为该部件重用
的默认编码器(渲染器)?孩子们根本不是问题所在,因为encodeChildren()
会自动完成这一切,但第一段的最后一句似乎指出了另一个问题,这令人困惑。@BalusC感谢您关注这一问题。我已经更新了这个问题,希望现在能更好地理解它。回答您的问题:我正在尝试对p:panel
的相同输出进行编码。
<my:test>
<h:outputText value="some Text"/>
</my:test>