我想将一些文字包裹在一个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;\">
将显示在页面中,而文本值将显示为橙色。
任何想法如何实现?
答案 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>