2012-06-09 101 views
0

我有以下代码:保留 n在jsp页面

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

当调试 “marksAndNumbers” 在我controller.it值显示如下:

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显示相同的值,则无法正确显示。

+0

东西正在逃离你的html。 –

回答

1

与大多数HTML元素不同,<textarea>保留空白(see this jsfiddle)。

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

如果它不适合你,东西必须在路上剥掉空白。要进行调试,请执行以下操作:

  1. 检查Web浏览器(源视图)中的HTML。那里有换行符?
  2. 检查您的Web浏览器的JavaScript调试器中的响应。那里有换行符?
  3. 你的web.xml中是否安装了过滤器去除“不必要的”空格?
  4. 检查您的JSP的输出。它是否真的在输出中写入换行符?