毕业设计进行ing~

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

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

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

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


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

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

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

核心代码如下:

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

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

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

核心代码:

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

实现实例:

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

核心代码:

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

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

首先是java部分:

 <%
String e_id = request.getParameter("e_id");
request.setAttribute("e_id", e_id);
//数据库jdbc的驱动装载
Class.forName("com.mysql.jdbc.Driver").newInstance();
//建立数据库连接
url = "jdbc:mysql://127.0.0.1:3306/managementsys?user=root&password=123456&useUnicode=true&characterEncoding=gb2312";
conn = DriverManager.getConnection(url);
//建立一个Statement对象,用于执行sql语句
Statement stat = conn.createStatement();
//执行查询并且得到查询结果。
sql = "select * from email_message where e_id="+e_id;
pstat = conn.prepareStatement(sql);
rs = pstat.executeQuery(); 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;
//将查询的结果集中的记录输出到页面上。
while (rs.next()) {
i_name_to= rs.getString("i_name_to").trim();
i_name_from= rs.getString("i_name_from").trim();
i_id_from= rs.getString("i_id_from").trim();
i_id_to= rs.getString("i_id_to").trim();
d_name_from= rs.getString("d_name_from").trim();
d_id_to= rs.getString("d_id_to").trim();
e_name= rs.getString("e_name").trim();
e_main= rs.getString("e_main").trim();
d_name_to= rs.getString("d_name_to").trim();
e_main=e_main.replace("\r\n","<br>"); /*此句实现对换行符的转换*/
request.setAttribute("i_name_to", i_name_to);
request.setAttribute("i_name_from", i_name_from);
request.setAttribute("i_id_from", i_id_from);
request.setAttribute("i_id_to", i_id_to);
request.setAttribute("d_name_from", d_name_from);
request.setAttribute("d_id_to", d_id_to);
request.setAttribute("e_name", e_name);
request.setAttribute("e_main", e_main);
request.setAttribute("d_name_to", d_name_to);
} %>

输出页面的jsp前端代码

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

最后贴一个结果

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

textarea 带换行符保存数据与带换行符展示数据的更多相关文章

  1. bug解决思路——插入数据时,前台不展示数据

    积攒一下平时解决bug时的思路,以后若是一头乱麻时翻出来看看~ 一个bug五一之前就和现场在定位,直到今天才算是定位到问题. 所有bug,还是得重现出来才可以发现问题.现场说登记记录时数据没在前台展示 ...

  2. ngResource提交json数据如何带参数

    ngResource提交json数据如何带参数 直接使用ngResource和REST服务接口交互可以让程序显得简洁,前提是配置好跨域和OPTIONS请求的支持,与此同时,如果需要带些额外的参数,有两 ...

  3. FP真验货客户的成品和半成品编码部分没有带尾续,导致FP规划错误 IN_SALES_ORDER数据不带CZ

    错误描述:真验货客户的成品和半成品编码部分没有带尾续,导致FP规划错误 IT角度: IN_SALES_ORDER数据不带CZ 现时前台页面数据: 现时后台数据: 一.跟进情况 1.执行SAP_SALE ...

  4. 云图说|DRS数据对比——带您随时观测数据一致性

    摘要:数据迁移过程中,如何保证数据不丢失,确保数据的一致性? 本文分享自华为云社区<[云图说]第226期 DRS数据对比--带您随时观测数据一致性>,作者:阅识风云 . 数据迁移过程中,如 ...

  5. 用Python爬取分析【某东618】畅销商品销量数据,带你看看大家都喜欢买什么!

    618购物节,辰哥准备分析一波购物节大家都喜欢买什么?本文以某东为例,Python爬取618活动的畅销商品数据,并进行数据清洗,最后以可视化的方式从不同角度去了解畅销商品中,名列前茅的商品是哪些?销售 ...

  6. 带缓冲I/O 和不带缓冲I/O的区别与联系

    首先要明白不带缓冲的概念:所谓不带缓冲,并不是指内核不提供缓冲,而是只单纯的系统调用,不是函数库的调用.系统内核对磁盘的读写都会提供一个块缓冲(在有些地方也被称为内核高速缓存),当用write函数对其 ...

  7. 转: 带你玩转Visual Studio——带你理解多字节编码与Unicode码

    上一篇文章带你玩转Visual Studio——带你跳出坑爹的Runtime Library坑帮我们理解了Windows中的各种类型C/C++运行时库及它的来龙去脉,这是C++开发中特别容易误入歧途的 ...

  8. 带你玩转Visual Studio——带你了解VC++各种类型的工程

    原文地址:http://blog.csdn.net/luoweifu/article/details/48816605 上一篇文章带你玩转Visual Studio——带你新建一个工程一文中提到新建一 ...

  9. 【译】x86程序员手册18-6.3.1描述符保存保护参数

    6.3 Segment-Level Protection 段级保护 All five aspects of protection apply to segment translation: 段转换时会 ...

  10. 带你玩转Visual Studio——带你理解多字节编码与Unicode码

    目录(?)[-] 多字节字符与宽字节字符 char与wchar_t string与wstring string 与 wstring的相关转换 字符集Charcater Set与字符编码Encoding ...

随机推荐

  1. stark组件开发之分页

    """ 分页组件 """ class Pagination(object): def __init__(self, current_page ...

  2. mysql解压缩版安装方法以及mysql无法启动1067错误

    https://jingyan.baidu.com/article/f3ad7d0ffc061a09c3345bf0.html我下载的版本号是5.6.421.解压到C:\Program Files\M ...

  3. vba文件对比并高亮显示

    每月月底要和人事要离职人员名单,并账号列表里删除已经离职人员的账号,如下代码通过将账号列表与人事发来的离职清单进行对比,高亮找出离职人员的账号,并进行删除. Sub DeleteMain() Dim ...

  4. sendmail发送邮件

    #echo 'hello!' | mail -s "hello test" 119733@qq.com

  5. netty随笔

    netty是一个nio框架,通过rpc长连接进行通信. nio和bio的区别是:bio是通过tcp/ip的三次握手机制实现通信,服务端连接几个客户端就要开几个线程,而nio有一个叫选择器(多路复用器) ...

  6. Android SDK Manager 无法打开

    环境变量已经设置(安装JDK8后 其实无需设置,之前记得Win7有个巧妙的地方是创建了3个快捷方式到某文件夹,现在Win10上直接将java.exe等放到System32目录下). 但是依然不行,网上 ...

  7. Android Studio导入第三方jar包或依赖工程的方法

    Android Studio导入第三方jar包或依赖工程的方法   一 导入jar包的方法 1.打开自己的工程,将需要导入的jar包copy到libs文件夹下 2.在导入的jar包处单击菜单 Add ...

  8. docker 技术

    利用docker打包一个sshd的服务 准备环境 安装docker     修改主机名与hosts解析     echo '10.0.0.11 docker01'     参考文档:https://m ...

  9. # 2019-2020-3 《Java 程序设计》第五周学习总结

    2019-2020-3 <Java 程序设计>第五周知识总结 1.使用interface来定义一个接口.接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两 ...

  10. VM无法连接到虚拟机

    The VMware Authorization Service is not running. 原因 虚拟机服务没有开启 解决方法 1.      我的电脑右击->管理 2.      打开服 ...