我想要完成的是能够获取一段代码/ HTML并告诉JSF在最终渲染中包含它与否。我已经弄乱了<ui:remove>
标签,但这将始终删除内容。
这是我试图不包括的内容:
<li><h:commandLink value="Create an Account" action="createUser"/></li>
<li><h:commandLink value="Login" action="login"/></li>
我需要一些东西来包装它,它将包含在render = true / false的基础上。我希望它不包括任何膨胀的代码,如div,table等。
答案 0 :(得分:2)
希望我理解您的问题,您是否尝试过呈现属性的这些组件?
示例:
<h:panelGroup rendered="#{bean.display}">
<li><h:commandLink value="Create an Account" action="createUser"/></li>
<li><h:commandLink value="Login" action="login"/></li>
</h:panelGroup>
<h:panelGrid rendered="#{bean.display}">
<li><h:commandLink value="Create an Account" action="createUser"/></li>
<li><h:commandLink value="Login" action="login"/></li>
</h:panelGrid>
<rich:panel rendered="#{bean.display}">
<li><h:commandLink value="Create an Account" action="createUser"/></li>
<li><h:commandLink value="Login" action="login"/></li>
</rich:panel>
'display'是您在JavaBean中定义的布尔属性,用于控制XHTML代码的可见性。
您可以使用的另一个标记是<ui:include>
,当XHTML代码的部分足够大以放入另一个.xhtml时,它可以帮助您更好地组织代码。
<ui:include src="yourPath.xhtml" rendered="#{bean.display}">
</ui:include>
对于<ui:remove>
,我通常会使用它暂时将代码注释为<!-- XHTML code -->
。