【问题标题】:Display on/off different areas of HTML显示打开/关闭 HTML 的不同区域
【发布时间】:2013-11-20 16:42:59
【问题描述】:

我想要完成的是能够获取一段代码/HTML,并告诉 JSF 在最终渲染中是否包含它。我弄乱了<ui:remove> 标签,但这总是会删除内容。

这是我试图不包括的内容:

<li><h:commandLink value="Create an Account" action="createUser"/></li>
<li><h:commandLink value="Login" action="login"/></li>

我需要一些东西来解决这个问题,它将在渲染 = true/false 的基础上包含它。我希望它不包含任何臃肿的代码,例如 div、表格等。

【问题讨论】:

    标签: jsf jsf-2 richfaces


    【解决方案1】:

    希望我能正确理解您的问题,您是否尝试过这些具有 rendered 属性的组件?

    例子:

    <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 代码的可见性。

    您可以使用的另一个标签是&lt;ui:include&gt;,当XHTML 代码部分大到可以放入另一个.xhtml 时,它可能会帮助您更好地组织代码。

    <ui:include src="yourPath.xhtml" rendered="#{bean.display}">
    </ui:include>
    

    对于&lt;ui:remove&gt;,我一般用它来临时注释掉代码为&lt;!-- XHTML code --&gt;。

    【讨论】:

    • 我的印象是这会添加额外的代码。经过测试,我可以看到它没有。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    • 2010-11-17
    • 2014-03-05
    相关资源
    最近更新 更多