0

在我们的 Cocoon 环境中,我们有一些带有 textareas 的表单。用户提交表单后,会在最终提交完成之前显示概览。因此,每个表单对象的数据都存储在 POJO 中。如果用户在该概览页面上并决定返回表单,则表单将填充从 POJO 读取的已提交数据。但是,当用 JavaObject 中的数据填充文本区域时,会在数据中添加一些换行符和空格。我检查了这些换行符的 POJO 数据,但字符串看起来很干净。用户输入的每个空格都是字符 32,这是一个简单的空格。

我还检查了序列化器(我们使用扩展 Cocoon 的 AbstractSerializer 的自定义序列化器),但这里没有意外添加换行符/空格。

但是,当使用 Javascript 输出该 Textarea 的当前内容时,它包含换行符 ('\n') 以及上述额外的空格。

我怀疑从 Java 的空格字符到 HTML 的空格字符的转换以某种方式失败了。这些换行符出现而不是空格,而不是在单个单词中。它们还根据文本区域的大小改变位置。它们不在一行的末尾,所以它们不能被 wrap 或其他东西强制。

示例:用户输入“test test test test”变为“test\n [36x Space] test test test test”

4

2 回答 2

0

这里有一个想法......你用什么将页面实际输出到客户端?我对 Cocoon 环境并不完全熟悉,但我假设您正在使用某种“模板”引擎(JSP?Velocity?)。我说的是服务器端具有该textarea元素的实际文件;在此处粘贴涉及该textarea元素的代码片段,我们将看到。

于 2010-10-08T07:04:23.647 回答
0

这些额外的换行符和空格是 XSL 转换的典型特征(开发时没有意识到此类换行符/空格问题)。

您很可能在您的 cocoon 应用程序中使用了 XSLT,也许应该对它们进行检查。

您可以采取许多众所周知的注意事项。您可以从SO(XSLT - 从模板中删除空格)开始了解这些。

于 2012-11-05T01:35:20.117 回答