显示HTML的不同区域的开/关

时间:2013-11-08 15:44:48

标签: jsf jsf-2 richfaces

我想要完成的是能够获取一段代码/ 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等。

1 个答案:

答案 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 -->