我有一个动态查询数据库以在页面上显示数据的网页,类似于Toad等数据库工具(当然不是关闭:),仅供参考示例。
问题是在页面上显示数据时会被修剪。这是我使用JSF显示数据的方式
<h:outputText value="#{record[columnIndex].toDisplayString()}" />
我相信它是关于html渲染的。我该怎么办?写一个HTML编码器?怎么样?帮助将受到高度赞赏。
答案 0 :(得分:14)
<h:outputText>
根本不会修剪该值。
也许你在讨论值中的前导/尾随空格,制表符,换行符,回车符等空格,默认情况下HTML标记中没有任何含义。它只是HTML源代码的一部分,而不是HTML表示。例如,换行符在HTML中由<br>
元素表示,而不是由\n
字符表示。
如果您想要保留HTML元素节点中的空格,就像在HTML源代码中那样,那么您需要将父HTML元素的CSS white-space
属性设置为pre
保护它。如果您想在块元素中换行,请使用pre-wrap
。
E.g。
<h:outputText ... styleClass="preformatted" />
与
.preformatted {
white-space: pre-wrap;
}
另一种方法是自己将文本转换为有效的HTML标记。例如。用\n
字符串替换每个<br/>
个字符。你可以使用EL功能。