在我们的Cocoon环境中,我们有几种形式的textareas。用户提交表单后,将在最终提交完成之前显示概述。 因此,每个表单对象的数据都存储在POJO中。 如果用户在该概述页面上并决定返回到表单,则表单将填充从POJO读取的已提交数据。但是,在使用JavaObject中的数据填充textarea时,会向数据中添加一些换行符和空格。 我检查了POJO的这些换行符数据,但String看起来很干净。用户输入的每个空格都是字符32,这是一个简单的空间。
我还检查了Serializer(我们使用了一个扩展Cocoon的AbstractSerializer的自定义程序),但没有偶然添加的换行/空格。
使用Javascript输出该Textarea的当前内容时,它包含换行符('\ n')以及前面提到的其他空格。
我怀疑从Java的Space-Character到HTML的空格字符的转换在某种程度上失败了。 这些换行符不是空格,而是单个单词。他们也根据textarea的大小改变位置。它们不在一条线的末端,所以它们不能被包裹或其他东西逼迫。
实施例: 用户输入“测试测试测试测试”变为“测试\ [36x空间]测试测试测试”
答案 0 :(得分:0)
这是一个想法......你用什么来实际将页面输出到客户端?我并不完全熟悉Cocoon环境,但我假设您正在使用某些类型的“模板”引擎(JSP?Velocity?)。我在谈论服务器端的实际文件,它具有textarea
元素;在此处粘贴涉及textarea
元素的代码片段,我们会看到。
答案 1 :(得分:0)
这些额外的换行符和空格是典型的XSL转换(开发时没有意识到这种换行/空白问题)。
您可能在cocoon应用程序中使用XSLT,也许应该检查它们。
您可以采取一些众所周知的注意事项。您可以启动on SO (XSLT - remove whitespace from template)来了解这些内容。