textarea 带换行符保存数据与带换行符展示数据

毕业设计进行ing~

最近要想要实现一个站内邮箱,想要带换行地输出邮件主体内容

这两天为了解决这个问题百度了好多东西,发现相关问题有很多记录,可能这确实是大多数初学者也碰到的问题。自己找了好多地方都没找到明确的解决方法。

其实解决了实在是很简单,但我真的几经周折才实现了自己想要的功能。

在这里希望自己可以尽可能详细地说明自己解决的过程,但愿能给所有寻找解决方法的朋友一个好的参考。


 

首先简单说一下问题和解决思路

问题1希望读进去的数据能保存为带换行的格式;

解决思路:在输入textarea表单的jsp页面写一个js前端代码,使其对传输到后端的文本中的回车转换为<br>

核心代码如下:

1 function fun() {
2         var a=document.getElementById("e_main");//获取textarea表单的数据,其中“e_main"为textarea的id属性值
3         var b=a.value;
4         a.value=b.replace(/\n/g,"<br/>");//回车转换为<br>
5         }

 

问题2希望读出来的数据能保存为带换行的格式。

解决思路:此时存进数据库中的元素已经是带换行的,只要读出来的时候将"\r\n"替换成<br>即可

核心代码:

1 e_main=e_main.replace("\r\n","<br>");

实现实例:

首先是编写邮件页面的jsp代码

核心代码:

 1 /*获取textarea表单元素并且转换值的js代码*/ 
 2 <script type="text/javascript">
 3     function fun() {
 4         var a=document.getElementById("e_main");//获取textarea表单的数据,其中“e_main"为textarea的id属性值
 5         var b=a.value;
 6         a.value=b.replace(/\n/g,"<br/>");//回车转换为<br>
 7         }
 8 </script>
 9 
10 /*form内代码*/
11 <form action="writeEmail.do" method="post" >
12                             <div class="panel-body">
13                                 <div class="form-group has-success">
14                                     <div class="col-lg-10">
15                                 
16                                         <label class="control-label" for="inputSuccess">收信ID<span id="div2" style="color:#d47878"></span> </label>
17                                         <input type="text" class="form-control" id="i_id_to"
18                                             name="i_id_to" placeholder="请在这里输入收信者的ID号" oninput="test2()"> 
19                                         <label class="control-label" for="inputSuccess">邮件主题<span id="div2" style="color:#d47878"></span> </label>
20                                         <input type="text" class="form-control" id="e_name"
21                                             name="e_name" placeholder="请在这里输入邮件的主题" > 
22                                             
23                                         <i class="fa fa-gift" style="color:#b8ef33"></i> <font style="color:#9da4b1">添加附件 </font><input type="file" name="添加附件" siez="16">
24                             
25                                           <br>
26                                     <input name="i_id_from" id="i_id_from" type="hidden" value="<%=Userid%>" />
27                                             
28                                             
29                                             <font class="control-label" for="inputSuccess">邮件正文 
30                                             </font>
31                                             <font style="margin-left:350px;" ><i class="fa fa-picture-o" style="color:#0bb18b9c"></i>  插入图片 </font>
32                                             
33                                             <textarea cols="10" rows="15" class="form-control" name="e_main" id="e_main" > </textarea>
34 
35                                         <h5 align="center">
36                                             <input type="submit" class="btn btn-warning" tabindex="3"
37                                                 value="发送邮件" onClick="return check();">
38                                                 </h5>
39                         </form>

其次为输出页面jsp页面的核心代码

首先是java部分:

 1 <%
 2 String e_id = request.getParameter("e_id");
 3         request.setAttribute("e_id", e_id);
 4         //数据库jdbc的驱动装载
 5                 Class.forName("com.mysql.jdbc.Driver").newInstance();
 6                 //建立数据库连接
 7                 url = "jdbc:mysql://127.0.0.1:3306/managementsys?user=root&password=123456&useUnicode=true&characterEncoding=gb2312";
 8                 conn = DriverManager.getConnection(url);
 9                 //建立一个Statement对象,用于执行sql语句
10                 Statement stat = conn.createStatement();
11                 //执行查询并且得到查询结果。
12                 sql = "select * from email_message where e_id="+e_id;
13                 pstat = conn.prepareStatement(sql);
14                 rs = pstat.executeQuery();
15 
16                 String i_name_to,i_name_from,i_id_from,i_id_to,d_name_from,d_id_from,d_id_to,e_name,e_main,d_name_to;
17                 //将查询的结果集中的记录输出到页面上。
18                 while (rs.next()) {
19                     i_name_to= rs.getString("i_name_to").trim();
20                     i_name_from= rs.getString("i_name_from").trim();
21                     i_id_from= rs.getString("i_id_from").trim();
22                     i_id_to= rs.getString("i_id_to").trim();
23                     d_name_from= rs.getString("d_name_from").trim();
24                     d_id_to= rs.getString("d_id_to").trim();
25                     e_name= rs.getString("e_name").trim();
26                     e_main= rs.getString("e_main").trim();
27                     d_name_to= rs.getString("d_name_to").trim();
28 e_main=e_main.replace("\r\n","<br>"); /*此句实现对换行符的转换*/
29 request.setAttribute("i_name_to", i_name_to); 30 request.setAttribute("i_name_from", i_name_from); 31 request.setAttribute("i_id_from", i_id_from); 32 request.setAttribute("i_id_to", i_id_to); 33 request.setAttribute("d_name_from", d_name_from); 34 request.setAttribute("d_id_to", d_id_to); 35 request.setAttribute("e_name", e_name); 36 request.setAttribute("e_main", e_main); 37 request.setAttribute("d_name_to", d_name_to); 38 } 39 40 %>

 

输出页面的jsp前端代码

 1 <div class="panel panel-success">
 2                     <div class="panel-heading">
 3                         <h3 class="panel-title">
 4                         <span style="font-weight:bold";>标题:</span>${e_name } 
 5                         <br> <span style="font-weight:bold";>from:</span> ${i_name_from} - ${d_name_from } &nbsp
 6                             <${i_id_from }>
 7                             <!--         发信时间:${e_year }年${e_month }月${e_day}日 ${e_hour }时${e_minute } -->
 8                             <br><span style="font-weight:bold";>收件人:</span>${i_name_to} - ${d_name_to } &nbsp<${i_id_to }>
 9                         </h3>
10                     </div>
11                     <div class="panel-body">${e_main }</div>
12                 </div>

最后贴一个结果

 

希望能帮到有需要的朋友!欢迎留言和给出更好的方法!

 

posted @ 2018-04-20 23:46  -DP-  阅读(998)  评论(0编辑  收藏  举报