h:outputText seems to trim whitespace, how do I pr

2019-05-13 12:21发布

我有一个网页,动态查询数据库,以在页面上显示的数据,类似于像蟾蜍等(甚至还没有接近,当然:),例如只用于说明)的数据库工具。

问题是显示在页面上,当数据被修剪。 这是我如何显示使用JSF数据

<h:outputText value="#{record[columnIndex].toDisplayString()}" />

我相信这是对HTML的渲染。 我该怎么办? 编写一个HTML编码器? 怎么样? 帮助将非常感激。

Answer 1:

所述<h:outputText>完全不修整的值。

也许你谈论像前/后间隔,制表符,换行符,回车等的价值,它在默认情况下在HTML标记完全没有意义的空白。 它只是成为HTML源代码的一部分,但不是HTML呈现。 换行,例如,在HTML由来表示<br>元件,而不是由\n字符。

如果您想保留空白的HTML元素节点,因为它是在HTML源代码,那么你需要设置父HTML元素的CSS white-space属性来pre以保存它。 如果您想换块元素线,然后使用pre-wrap

<h:outputText ... styleClass="preformatted" />

.preformatted {
    white-space: pre-wrap;
}

另一种方法是将文本转换为有效的HTML标记自己。 如替换的每次出现\n由字符<br/>字符串。 你可以使用EL函数这一点。

也可以看看:

  • 组件注入与HTML代码解释字符串到JSF页面


文章来源: h:outputText seems to trim whitespace, how do I preserve whitespace?