【发布时间】:2010-09-15 08:15:56
【问题描述】:
我在 JSP 页面中有一个 HTML 文本区域。当我连续按下一个按钮并且光标到达行尾时,它会自动转到第二行。
当我得到这个文本并尝试在 <p> 标记内打印它时,换行符消失了
并且整个文本出现在一行中,而不是像我输入的那样在单独的行中
任何想法如何用新行正确打印它?
【问题讨论】:
我在 JSP 页面中有一个 HTML 文本区域。当我连续按下一个按钮并且光标到达行尾时,它会自动转到第二行。
当我得到这个文本并尝试在 <p> 标记内打印它时,换行符消失了
并且整个文本出现在一行中,而不是像我输入的那样在单独的行中
任何想法如何用新行正确打印它?
【问题讨论】:
如果你想在textarea中换行变成换行符(\n)设置wrap="hard",即:
<textarea wrap="hard"></textarea>
【讨论】:
听起来您希望将 textarea 的自动换行翻译成换行符。
您在文本区域看到的是自动换行,而不是换行符。除非您按 Enter 手动换行,否则最终文本中不会有任何换行符。
其次,如果您在文本中添加物理换行符,如果在 HTML 页面中显示它,您仍然不会看到它们,因为 HTML 会抑制空格和换行符。如果要查看换行符,则需要对 HTML 进行补偿。有两种方法可以做到这一点:
标记,或者设置 white-space:pre-wrap; 的新方法; CSS 样式。 (注意如果你需要支持IE6,CSS样式不适合你,所以你需要使用)
【讨论】:
*) 您可以在用户端限制A元素的宽度以启动中断;
*) 或者您可以在服务器端插入中断
【讨论】:
您可以在服务器端使用此方法和/或将其实现为 JSP 标记:
public static String nl2br(String s) {
return s.replaceAll("\n","<br/>");
}
此方法将所有换行符替换为相应的 html 换行符。
【讨论】:
你可以这样使用:
<p> Your Text Here <wbr> </p>
在 HTML5 中,当浏览器没有空间时,这个标签会自动转到下一行,如果不需要中断,浏览器就忽略它
【讨论】: