【问题标题】:Jsf custom selectItemsjsf自定义selectItems
【发布时间】:2011-02-09 19:58:38
【问题描述】:

看下面的代码

<h:selectManyCheckbox layout="pageDirection" styleClass="pressReviewTable">
 <f:selectItems value="#{theme.articles}" var="prArt" itemLabel="#{prArt.prLabel}" itemValue="#{prArt.id}" itemLabelEscaped="false"/>
</h:selectManyCheckbox>

我尝试在 itemLabel 上添加一些 html,例如 &lt;b&gt;,但出现以下错误:

属性“itemLabel”的值 与元素类型相关联 “f:selectItems”不得包含 '

我找到了一个技巧,可以直接在#{prArt.prLabel} 中放入 html,但我对此并不满意。我使用 mojarra 和 primefaces。

我想做类似的事情:

<f:selectItems value="#{theme.articles}" var="prArt" itemLabel="<b>#{prArt.value1}</b> : <font>#{prArt.value2}</font>" itemValue="#{prArt.id}" itemLabelEscaped="false"/>

另外的方法是什么?如果有...

谢谢

【问题讨论】:

    标签: jsf jsf-2


    【解决方案1】:

    由于每个项目标签在 HTML 中打印为&lt;label&gt;,因此您可以使用 CSS

    <h:selectManyCheckbox styleClass="foo">
    

    .foo label { font-weight: bold; }
    

    【讨论】:

    • 我不能,实际上我想做类似&lt;f:selectItems value="#{theme.articles}" var="prArt" itemLabel="&lt;b&gt;#{prArt.value1}&lt;/b&gt; : &lt;font&gt;#{prArt.value2}&lt;/font&gt;" itemValue="#{prArt.id}" itemLabelEscaped="false"/&gt;
    • 好吧,那么您在 JSF/CSS 方面就无能为力了。一个自定义的f:selectItems 组件可以修复它,但这有点工作。您可以只添加一个额外的 getter,它会在值周围添加一些 HTML 香肠。请注意,&lt;font&gt; 标记自 1998 年以来已被弃用。而是使用 &lt;span&gt; 或其他东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 1970-01-01
    • 2011-06-01
    • 2012-07-29
    • 2011-06-26
    • 2010-10-13
    相关资源
    最近更新 更多