【问题标题】:Retain \n in jsp page在 jsp 页面中保留 \n
【发布时间】:2024-01-10 15:28:01
【问题描述】:

我有以下代码:

<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

但是当我尝试使用&lt;textarea&gt; 标签显示这个时,换行符没有保留,所有内容都显示在同一行中。

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

我尝试将控制器中的“\n”替换为"&lt;br/&gt;",显示为:

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 显示相同的值,它会正确显示。

【问题讨论】:

  • 有些东西正在逃离您的 html。

标签: html spring jsp textarea jstl


【解决方案1】:

与大多数 HTML 元素不同,&lt;textarea&gt; 保留空白 (see this jsfiddle)。

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

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

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

【讨论】:

    最近更新 更多