【问题标题】:Template-based facelet tag library基于模板的 facelet 标签库
【发布时间】:2012-08-09 07:16:22
【问题描述】:

我想创建一个由模板支持的 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 属性但不支持子元素。

【问题讨论】:

    标签: jsf facelets icefaces


    【解决方案1】:

    好的,我找到了解决方案,而且很简单。

    只需使用普通的 taglib 并像这样使用

    <my:wizardStep>
    <ui:insert name="title"><h2>The header comes here</h2>/ui:insert>
    </<my:wizardStep>
    

    并且在标签定义中:

    <ui:composition>
    <ui:insert name="title" />
    (...)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-02
      • 1970-01-01
      • 1970-01-01
      • 2012-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多