0

我想设计一些文本女巫被包裹在一个 html<code>标记中。但是样式是在服务器端类中完成的。例如:

myValue.replaceAll(" " + textToStyle + " ", " <span style=\"color: orange;\"> " + textToStyle + "</span> ");

此行作为包含在<code>标签中的文本。文本显示在 JSF 数据表中:

<h:column>
    <code class="dt_row">
        #{myList.myValue}
    </code>
</h:column>

<code>标签 css 类:

.dt_row {
    height: 8px;
    margin: 3px 3px 3px 3px;
    color: #000000;
    font-size: 12px;
}

问题是当 html 在浏览器中呈现时,代码会与所有标签一起显示。我希望这不会<span style=\"color: orange;\">显示在页面中,而是显示为橙色的文本值。

任何想法如何实现这一目标?

4

2 回答 2

4

代替

#{myList.myValue}

你可以试试

<h:outputText value="#{myList.myValue}" escape="false" />

将“escape”设置为false应该可以完成工作(否则框架将转义字符串......)。

于 2012-05-08T13:57:51.857 回答
2

更优雅的方法是使用 h:outputText 组件的样式属性并引用 bean 的颜色,例如:

<h:column>
    <code class="dt_row">
        <h:outputText value="#{myList.myValue}" style="color: #{myList.color};" />
    </code>
</h:column>
于 2012-05-08T14:07:16.487 回答