如何在 Facelets 文件中的两个 ui:compositions 之间切换?
How can I switch between two ui:compositions in a Facelets file?
在 JSF xhtml 文件中,我希望能够根据一些标志在两个不同的 ui:compositions 之间进行选择。下面使用虚构的 magic:if
标签对此进行了说明。我怎样才能做到这一点?换句话说,我可以用什么真正的标签来代替 magic:if
?
<magic:if test="showOption1">
<ui:composition template="/option1.xhtml">
<ui:define name="header">Foo</ui:define>
</ui:composition>
</magic:if>
<magic:if test="!showOption1">
<ui:composition template="/option2.xhtml">
<ui:define name="header">Foo</ui:define>
</ui:composition>
</magic:if>
In other words, what real tag can I use in place of magic:if?
有none。 <ui:composition>
是根元素。没有什么可以最终更高。
您有 2 个选择:
在 template
属性本身中进行切换。
<ui:composition template="/option#{showOption1 ? 1 : 2}.xhtml">
<ui:define name="header">Foo</ui:define>
</ui:composition>
在<ui:composition>
里面使用<ui:decorate>
,这个可以用<c:if>
.
包裹起来
<ui:composition template="/options.xhtml">
<c:if test="#{showOption1}">
<ui:decorate template="/option1.xhtml">
<ui:define name="header">Foo</ui:define>
</ui:decorate>
</c:if>
<c:if test="#{not showOption1}">
<ui:decorate template="/option2.xhtml">
<ui:define name="header">Foo</ui:define>
</ui:decorate>
</c:if>
</ui:composition>
在 JSF xhtml 文件中,我希望能够根据一些标志在两个不同的 ui:compositions 之间进行选择。下面使用虚构的 magic:if
标签对此进行了说明。我怎样才能做到这一点?换句话说,我可以用什么真正的标签来代替 magic:if
?
<magic:if test="showOption1">
<ui:composition template="/option1.xhtml">
<ui:define name="header">Foo</ui:define>
</ui:composition>
</magic:if>
<magic:if test="!showOption1">
<ui:composition template="/option2.xhtml">
<ui:define name="header">Foo</ui:define>
</ui:composition>
</magic:if>
In other words, what real tag can I use in place of magic:if?
有none。 <ui:composition>
是根元素。没有什么可以最终更高。
您有 2 个选择:
在
template
属性本身中进行切换。<ui:composition template="/option#{showOption1 ? 1 : 2}.xhtml"> <ui:define name="header">Foo</ui:define> </ui:composition>
在
包裹起来<ui:composition>
里面使用<ui:decorate>
,这个可以用<c:if>
.<ui:composition template="/options.xhtml"> <c:if test="#{showOption1}"> <ui:decorate template="/option1.xhtml"> <ui:define name="header">Foo</ui:define> </ui:decorate> </c:if> <c:if test="#{not showOption1}"> <ui:decorate template="/option2.xhtml"> <ui:define name="header">Foo</ui:define> </ui:decorate> </c:if> </ui:composition>