我有一个动态查询数据库以在页面上显示数据的网页,类似于 Toad 等数据库工具(当然甚至不关闭:),示例仅用于说明)。
问题是数据在页面上显示时会被修剪。这就是我使用 JSF 显示数据的方式
<h:outputText value="#{record[columnIndex].toDisplayString()}" />
我相信这是关于 html 渲染的。我该怎么办?写一个html编码器?如何?帮助将不胜感激。
我有一个动态查询数据库以在页面上显示数据的网页,类似于 Toad 等数据库工具(当然甚至不关闭:),示例仅用于说明)。
问题是数据在页面上显示时会被修剪。这就是我使用 JSF 显示数据的方式
<h:outputText value="#{record[columnIndex].toDisplayString()}" />
我相信这是关于 html 渲染的。我该怎么办?写一个html编码器?如何?帮助将不胜感激。
<h:outputText>
根本不会削减价值。
也许您正在谈论值中的前导/尾随空格、制表符、换行符、回车符等空格,默认情况下,这些空格在 HTML 标记中完全没有意义。它只是成为 HTML 源代码的一部分,而不是 HTML 表示。例如,换行符在 HTML 中由<br>
元素表示,而不是由\n
字符表示。
如果您想在 HTML 元素节点中保留 HTML 源代码中的空白,那么您需要将父 HTML 元素的 CSSwhite-space
属性设置pre
为以保留它。如果您想在块元素中换行,请使用pre-wrap
.
例如
<h:outputText ... styleClass="preformatted" />
和
.preformatted {
white-space: pre-wrap;
}
另一种方法是自己将文本转换为有效的 HTML 标记。例如用字符串替换每个出现的\n
字符<br/>
。您可以为此使用 EL 函数。