如何在h:列中加粗特定的字符串

时间:2012-11-01 16:24:14

标签: jsf

我有一个JSF数据表,它基于搜索成功显示数据。但是,我不确定如何在特定列中有选择地加粗某些文本数据。

所以,例如,我想要这个文字......

  

以下是h:column

中的一些文字

在页面上显示如下...

  

以下是h:列

中的一些文本

这是我的数据表的样子

结果:

<h:dataTable var="results"
             value="#{logSearcherBean.results}"
             border="1">
    <h:column>#{results.logName}</h:column>
    <h:column>#{results.matchLine}</h:column>
</h:dataTable>

2 个答案:

答案 0 :(得分:1)

你可以 自制一个EL function来操纵列值并返回所需的HTML,

<h:outputText value="#{my:highlight(results.logName, logSearcherBean.query)}" escape="false" />

(请注意,这是由escape="false"引起的,如果logName是一个完全由最终用户控制的值,则必须在字面上呈现HTML,对XSS攻击也很敏感。

抓取操纵返回的HTML的JavaScript / jQuery,另请参阅此相关问题:Highlight a word with jQuery

答案 1 :(得分:0)

大家好,

                    <p:column id="lastName"
                              headerText="Last Name">
                        <h:outputText value="#{person.lastName}" style="#{myBean.getStyle(person.lastName)}"/>
                    </p:column>

在豆子中:

public String getStyle(String str) {
    return str.equals(keyword) ? "background-color: yellow" : "";
}

所有最好和快乐的编码!