我有一个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>
答案 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" : "";
}
所有最好和快乐的编码!