在html代码标记中设置样式文本

时间:2012-05-08 13:50:47

标签: java html css jsf

我想将一些文字包裹在一个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;\">将显示在页面中,而文本值将显示为橙色。

任何想法如何实现?

2 个答案:

答案 0 :(得分:4)

而不是

#{myList.myValue}

你可以尝试

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

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

答案 1 :(得分:2)

更优雅的方法是使用h:outputText组件的style-attribute并引用颜色的bean,例如:

<h:column>
    <code class="dt_row">
        <h:outputText value="#{myList.myValue}" style="color: #{myList.color};" />
    </code>
</h:column>