0

我有以下代码:

<form:textarea rows="3" cols="21"  path="marksAndNumbers" onchange="changed()" htmlEscape="false"/></td>

当我在我的控制器中调试“marksAndNumbers”的值时,它显示如下:

Stores
PO# 4640995
DPCI-Item# 069000364
Style# TB1124
COLOR 
SIZE 
CASEPACK 6
COUNTRY OF ORIGIN 
CHINA

但是当我尝试使用<textarea>标签显示这个时,换行符不会保留,所有内容都显示在同一行中。

StoresPO# 4640995 DPCI-Item# 069000364 Style# TB1124COLOR SIZE CASEPACK 6 COUNTRY OF ORIGIN CHINA

我试图用"<br/>"我的控制器中的“\ n”替换,这显示为:

Stores
<br/>PO# 4640995
<br/>DPCI-Item# 069000364
<br/>Style# TB1124
<br/>COLOR 
<br/>SIZE 
<br/>CASEPACK 6
<br/>COUNTRY OF ORIGIN 
<br/>HEIGHT 19.81 CM

但是,如果我使用c:out它显示相同的值,它就会正确显示。

4

1 回答 1

1

与大多数 HTML 元素不同,<textarea>保留空格(请参阅此 jsfiddle)。

这意味着解决方案是用完整的换行符呈现 HTML。

如果它对您不起作用,则必须在途中去除空白。要调试这个:

  1. 检查 Web 浏览器中的 HTML(源视图)。换行符在吗?
  2. 检查 Web 浏览器的 JavaScript 调试器中的响应。换行符在吗?
  3. 您是否在 web.xml 中安装了过滤器以去除“不必要的”空白?
  4. 检查 JSP 的输出。它真的在输出中写入换行符吗?
于 2012-06-09T12:25:49.377 回答