有条件地将模板文本呈现为粗体

Conditionally render template text as bold

对于我的收件箱页面,在此页面用户将能够看到消息,消息将有两种状态(尚未开始,In_progress)。

用户可以看到所有消息的数据表将有 3 列:

Data, title, actions

消息状态来自服务。我的任务是,将 BOLDED 单词“NEW”添加到用户尚未打开的每条消息的标题中。

打开后,状态将变为 "in_progress",粗体字“NEW”应该会消失。

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

到目前为止我所做的是:

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

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

我尝试在 'New' 周围添加 <b></b>,但在这种情况下出现错误。

在h:outputText标签

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

我试过了,对我有用

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

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

或者,应用样式 class。

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

通过 style 属性使用内联样式是不好的做法,因为它不是 abstract/reusable。