我有一个网页,可以动态查询数据库以在页面上显示数据,类似于 Toad 等数据库工具(当然还不是很接近:),仅用于说明的示例)。

问题是数据在页面上显示时被修剪。这就是我使用 JSF 显示数据的方式

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

我相信这是关于 html 渲染的。我应该怎么办?写一个html编码器?如何?我们将非常感谢您的帮助。

请您参考如下方法:

<h:outputText>根本不削减该值。

也许您正在谈论值中的空白,例如前导/尾随空格、制表符、换行符、回车符等,默认情况下这些空白在 HTML 标记中完全没有意义。它只是成为 HTML 源代码的一部分,而不是 HTML 演示文稿。例如,换行符在 HTML 中由 <br> 表示。元素,而不是 \n性格。

如果您想保留 HTML 元素节点中的空格,就像在 HTML 源代码中一样,那么您需要设置父 HTML 元素的 CSS white-space 属性至pre为了保存它。如果您想在 block 元素中换行,请使用 pre-wrap .

例如

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

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

另一种方法是自行将文本转换为有效的 HTML 标记。例如。替换所有出现的 \n字符由<br/>字符串。您可以为此使用 EL 函数。

另请参阅:


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!