textarea 带换行符保存数据与带换行符展示数据
毕业设计进行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 }  
<${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 }  <${i_id_to }>
</h3>
</div>
<div class="panel-body">${e_main }</div>
</div>
最后贴一个结果

希望能帮到有需要的朋友!欢迎留言和给出更好的方法!
textarea 带换行符保存数据与带换行符展示数据的更多相关文章
- bug解决思路——插入数据时,前台不展示数据
积攒一下平时解决bug时的思路,以后若是一头乱麻时翻出来看看~ 一个bug五一之前就和现场在定位,直到今天才算是定位到问题. 所有bug,还是得重现出来才可以发现问题.现场说登记记录时数据没在前台展示 ...
- ngResource提交json数据如何带参数
ngResource提交json数据如何带参数 直接使用ngResource和REST服务接口交互可以让程序显得简洁,前提是配置好跨域和OPTIONS请求的支持,与此同时,如果需要带些额外的参数,有两 ...
- FP真验货客户的成品和半成品编码部分没有带尾续,导致FP规划错误 IN_SALES_ORDER数据不带CZ
错误描述:真验货客户的成品和半成品编码部分没有带尾续,导致FP规划错误 IT角度: IN_SALES_ORDER数据不带CZ 现时前台页面数据: 现时后台数据: 一.跟进情况 1.执行SAP_SALE ...
- 云图说|DRS数据对比——带您随时观测数据一致性
摘要:数据迁移过程中,如何保证数据不丢失,确保数据的一致性? 本文分享自华为云社区<[云图说]第226期 DRS数据对比--带您随时观测数据一致性>,作者:阅识风云 . 数据迁移过程中,如 ...
- 用Python爬取分析【某东618】畅销商品销量数据,带你看看大家都喜欢买什么!
618购物节,辰哥准备分析一波购物节大家都喜欢买什么?本文以某东为例,Python爬取618活动的畅销商品数据,并进行数据清洗,最后以可视化的方式从不同角度去了解畅销商品中,名列前茅的商品是哪些?销售 ...
- 带缓冲I/O 和不带缓冲I/O的区别与联系
首先要明白不带缓冲的概念:所谓不带缓冲,并不是指内核不提供缓冲,而是只单纯的系统调用,不是函数库的调用.系统内核对磁盘的读写都会提供一个块缓冲(在有些地方也被称为内核高速缓存),当用write函数对其 ...
- 转: 带你玩转Visual Studio——带你理解多字节编码与Unicode码
上一篇文章带你玩转Visual Studio——带你跳出坑爹的Runtime Library坑帮我们理解了Windows中的各种类型C/C++运行时库及它的来龙去脉,这是C++开发中特别容易误入歧途的 ...
- 带你玩转Visual Studio——带你了解VC++各种类型的工程
原文地址:http://blog.csdn.net/luoweifu/article/details/48816605 上一篇文章带你玩转Visual Studio——带你新建一个工程一文中提到新建一 ...
- 【译】x86程序员手册18-6.3.1描述符保存保护参数
6.3 Segment-Level Protection 段级保护 All five aspects of protection apply to segment translation: 段转换时会 ...
- 带你玩转Visual Studio——带你理解多字节编码与Unicode码
目录(?)[-] 多字节字符与宽字节字符 char与wchar_t string与wstring string 与 wstring的相关转换 字符集Charcater Set与字符编码Encoding ...
随机推荐
- [leetcode]35. Search Insert Position寻找插入位置
Given a sorted array and a target value, return the index if the target is found. If not, return the ...
- CentOS 6.7快速搭建lamp环境
安装前要关闭防火墙,防止外网不能访问,这一点很重要,要不然外网访问不了: ①关闭防火墙:service iptables stop ②永久关闭防火墙:chkconfig iptables off ③查 ...
- ionic3使用第三方图标
1.打开阿里图标库http://www.iconfont.cn 2.找到自己所需的图标,加入购物车(免费使用的) 3.打开购物车,点击右下角(下载代码) 4.解压文件,打开demo_unicode.h ...
- redis在游戏服务器中的使用初探(一) 环境搭建
这里我们尝试在游戏服务器中的数据处理中使用redis 通过该系列文章能够学习 redis的基本操作 源码编译 客户端开源库的编译和使用 以及在游戏服务器中的缓存使用 作为初次摸索 尽量使得环境简单 ...
- P1613 跑路(倍增 + floyd)
https://www.luogu.org/problemnew/show/P1613 思路: 1.读入 2.建图 3.对于每一个点,向距离它 2^k 长度的点连一条长度为 1 的边 4.在新图上跑1 ...
- class反射
1.获取类的方式: //第一种方式: Class c1 = Class.forName(User); //第二种方式: //java中每个类型都有class 属性. Class c2 = User.c ...
- Java输入输出流详解
通过数据流.序列化和文件系统提供系统输入和输出. Java把这些不同来源和目标的数据都统一抽象为数据流.Java语言的输入输出功能是十分强大而灵活的,美中不足的是看上去输入输出的代码并不是很简洁,因为 ...
- 关于CSS布局
是时候单独列出一篇文章记录CSS布局了. http://www.imooc.com/article/2235 [史上最全Html和CSS布局技巧]
- 居于H5的多文件、大文件、多线程上传解决方案
文件上传在web应用中是比较常见的功能,前段时间做了一个多文件.大文件.多线程文件上传的功能,使用效果还不错,总结分享下. 一. 功能性需求与非功能性需求 要求操作便利,一次选择多个文件进行上传: 支 ...
- Centos7.0进入单用户模式修改root密码
启动Centos7 ,按空格让其停留在如下界面. 按e进行编辑 在UTF-8后面输入init=/bin/sh 根据提示按ctrl+x 得如下图 输入mount -o remount,rw / 然后输 ...