提问人:Bren 提问时间:4/13/2012 最后编辑:Bren 更新时间:9/30/2015 访问量:6598
h:outputText 似乎修剪了空格,如何保留空格?[复制]
h:outputText seems to trim whitespace, how do I preserve whitespace? [duplicate]
问:
我有一个网页,可以动态查询数据库以在页面上显示数据,类似于Toad等数据库工具(当然:)甚至没有关闭,仅供说明之用)。
问题是数据在页面上显示时会被修剪。这就是我使用 JSF 显示数据的方式
<h:outputText value="#{record[columnIndex].toDisplayString()}" />
我相信这是关于html渲染的。我该怎么办?编写 html 编码器?如何?将不胜感激。
答:
16赞
BalusC
4/13/2012
#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 标记。例如,用字符串替换每个出现的字符。为此,您可以使用 EL 函数。\n
<br/>
另请参阅:
评论
0赞
Bren
4/14/2012
非常感谢,我知道这与html有关,正在寻找像trim=false之类的组件属性。想不出要查找CSS。你是救星,@BalusC先生
评论