0

検索に基づいたデータを正常に表示しているJSFデータテーブルがあります。ただし、特定の列の特定のテキストデータを選択的に太字にする方法がわかりません。

だから、例えば、私はこのテキストが欲しいです...

これがh:column内にあるテキストです

このようにページに表示するには...

これがh:column内にあるテキストです

これが私のデータテーブルの様子です

結果:

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

2 に答える 2

1

列の値を操作して目的のHTMLを返すEL関数を自作することもできます。

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

(これは、HTMLを文字通り提示するために必須であり、エンドユーザーによって完全に制御される値であるescape="false"場合はXSS攻撃にも敏感であるためです)logName

または、返されたHTMLを操作するJavaScript / jQueryを取得します。この関連する質問も参照してください:jQueryで単語を強調表示します。

于 2012-11-01T16:35:26.640 に答える
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" : "";
}

すべての最高で幸せなコーディング!

于 2021-01-12T13:57:59.437 に答える