有条件地将模板文本渲染为粗体

时间:2015-10-04 12:29:03

标签: html jsf conditional-rendering

对于我的收件箱页面,在此页面中,用户将能够看到消息,消息将有2种类型的状态(尚未启动,In_progress)..

dataTable,其中用户将能够看到所有消息将有3列:

<p:column headerText="#{msg.title}">
    <h:outputText value="#{task.properties.bpm_status=='Not Yet Started'?'New ':''}" />
    <h:outputText value="#{task.properties.bpm_description}" />
</p:column>

消息的状态来自服务。我的任务是,添加 BOLDED 字样&#34; &#34;到用户尚未打开的每条消息的标题。

打开后,状态将变为&#34; in_progress&#34;和粗体字&#34; &#34;应该消失。

或者有 NEW 的想法使用某种图标。

到目前为止,我所做的是:

<b></b>

问题是,我无法正确添加<b></b>以加粗它或添加图标。

我试图添加COUNT(DISTINCT) arround&#39; New&#39;但在那种情况下我得到了错误。

2 个答案:

答案 0 :(得分:2)

尝试在h:outputText Tag

中的"style="font-weight:bold""中使用以下样式
 <h:outputText value="#{task.properties.bpm_status=='Not Yet Started'?'New ':''}" style="font-weight:bold"  />

我尝试了它,它对我有用

答案 1 :(得分:1)

您可以使用<ui:fragment>有条件地呈现模板文字。

<ui:fragment rendered="#{task.properties.bpm_status eq 'Not Yet Started'}">
    <b>New</b>
</ui:fragment>

或者,应用样式类。

<h:outputText value="New" styleClass="new" rendered="#{task.properties.bpm_status eq 'Not Yet Started'}" />
.new {
    font-weight: bold;
}

通过style属性使用内联样式是不好的做法,因为它不是抽象/可重用的。