在我们的 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”