在数据库中存储带有换行符的 TextArea 数据并以相同的格式显示带有换行符

Posted

技术标签:

【中文标题】在数据库中存储带有换行符的 TextArea 数据并以相同的格式显示带有换行符【英文标题】:Storing TextArea data with line breaks in database and displaying in same format with line breaks 【发布时间】:2012-04-21 04:27:14 【问题描述】:

我有一个带有 textarea html 组件的 JSP 页面。当用户在 textarea 中输入时按下回车键并转到下一行,当他点击保存按钮时,它将文本区域中的数据保存到数据库中。但是当我加载数据库的内容时,换行符消失了。意思是:

你好 世界

显示像

你好世界

我试过这里给出的方法How do I replace all line breaks in a string with <br /> tags? 但它不工作。我也试过这个How to save user-entered line breaks from a TextArea to a database?,但我没有使用 php,而且这里给出的另一种语言的解决方案用“”替换“\n”也不起作用。请问有人知道怎么做吗?

我试过这段代码:

String a=req.getParameter("topicdes").toString();
a.replaceAll("\n","<br />");

【问题讨论】:

你只需要在javascript中的请求url中做encodeURIComponent($("#idOfTextArea")),并且只需要通过request.getParameter("textareaname")获取值并保存到数据库中 【参考方案1】:

replaceAll 方法返回一个新字符串。您的变量 a 永远不会被修改。

解决您的问题:a = a.replaceAll("\n","&lt;br /&gt;");

在这种方法中,阅读javadoc可以节省时间。

问候。

【讨论】:

我同意你的观点 Eric 但我也试过这个 String a=req.getParameter("topicdes").toString().replaceAll("\n","");所以我认为它和你的代码一样。 你能告诉我们 req.getParameter("topicdes").toString(); 的结果吗

以上是关于在数据库中存储带有换行符的 TextArea 数据并以相同的格式显示带有换行符的主要内容,如果未能解决你的问题,请参考以下文章

textarea 换行之间的转换

Textarea在开始时忽略多个换行符

javascript/html/php 捕获 textarea 中的换行符

将textarea的文本复制到带有换行符的div中

AngularJS textarea 换行符/换行符转换

如何在textarea文本输入区内实现换行