【问题标题】:How to disable a nested heading html element using jsf rendered attribute如何使用 jsf 渲染属性禁用嵌套标题 html 元素
【发布时间】:2011-07-06 05:56:37
【问题描述】:

我有一个 JSF 页面,其中包含:

<div class="tableCaption">
  <h2>Batch Details</h2>
</div>

以及定义 .tableCaption h2 外观的 CSS

我想将上面的 div 包装在一个具有“rendered”属性的 JSF 组件中,这样我就可以启用/禁用 div,但我找不到合适的组件。是否可以包装任意 HTML 组件并打开/关闭它们?

如果这不可能,有没有办法使用 以某种方式使其使用已经为 .tableCaption h2 定义的 CSS?

【问题讨论】:

    标签: html jsf


    【解决方案1】:

    您可以使用&lt;h:panelGroup layout="block"&gt; 获取HTML &lt;div&gt; 元素。

    <h:panelGroup layout="block" styleClass="tableCaption" rendered="#{condition}">
        <h2>Batch Details</h2>
    </h:panelGroup>
    

    或者,当使用 JSP 作为视图技术时,如果唯一的主体是纯 HTML,则可以使用 &lt;f:verbatim&gt;

    <f:verbatim rendered="#{condition}">
        <div class="tableCaption">
            <h2>Batch Details</h2>
        </div>
    </f:verbatim>
    

    请注意,这个标签在 JSF 2.0 中已被弃用,取而代之的是 Facelets。

    或者,当您使用 Facelets 作为视图技术时,&lt;ui:fragment&gt; 应该这样做:

    <ui:fragment rendered="#{condition}">
        <div class="tableCaption">
            <h2>Batch Details</h2>
        </div>
    </ui:fragment>
    

    【讨论】:

    • 您好,感谢您的建议。不幸的是,我忘了提到我使用的是 JSF 1.1,并且以上都不起作用,因为它们是 JSF1.2 或更高版本。我最终使用了 JSF1.1 的 MyFaces Tomahawk 库 - 特别是 &lt;t:div&gt; 标记。
    • JSF 1.1 支持&lt;f:verbatim&gt;
    • &lt;f:verbatim&gt; 不支持 JSF1.1 中的 rendered 属性
    • @user1169330:你是对的。只需使用 &lt;h:panelGroup&gt; 代替。或者只是升级 JSF,JSF 1.1 是死技术。
    猜你喜欢
    • 1970-01-01
    • 2014-08-07
    • 1970-01-01
    • 2014-04-28
    • 2011-09-09
    • 1970-01-01
    • 2019-06-16
    • 2019-05-12
    • 2020-10-06
    相关资源
    最近更新 更多