我想创建一个由模板支持的 facelet 组件。
像这样的东西:
<h:panelGroup rendered="#{myBean.isStepActive('step0')}">
<composition template="wizard-step.jspx">
<ui:define name="title">Step One</ui:define>
<ui:define name="text"><p>This describes the step</p></ui:define>
</composition>
</h:panelGroup>
<h:panelGroup rendered="#{myBean.isStepActive('step1')}">
<composition template="wizard-step">
<ui:define name="title">Step Two</ui:define>
(...)
似乎不起作用,因为无论呈现返回什么,wizard-step.jspx 的内容都会放在任何页面上(似乎 ui: 标签在所有其他标签之前进行评估。
有没有办法完成我想要的?在我的情况下,普通的自定义标签不够强大,因为它只支持 xml 属性但不支持子元素。