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 ...
随机推荐
- Shell 数值、字符串比较
Shell脚本中,数值与字符串比较是不同的,因此要注意(注意[]括号内参数和括号之间有一个空格). 一.数值比较 -eq 等于,如: if [ $a -eq $b ] -ne 不等于,如: if ...
- Job for ssh.service failed because the control process exited with error code.......
转载自:https://blog.csdn.net/woailyoo0000/article/details/79782986 笔者最近更新ubuntu系统,在更新之前设置了证书信任文件,重启以后ss ...
- MySQL开发——【数据库、数据表的基本操作】
启动MySQL服务器端 CMD启动MySQL服务器端 net start(启动)|stop(停止)|restart(重启)服务名称(mysql) 连接MySQL服务器端 CMD连接MySQL服务器端 ...
- 三 分析easyswoole源码(启动服务&TableManager,略提及Cache工具的原理)
前文连接,讲了es是如何启动swoole服务的. 里面有一个工具类TableManager.这个类为了处理进程间数据共享.是对swoole_table的一层封装swoole_table一个基于共享内存 ...
- SVN忘记登陆用户
C:\Users\Yaolz\AppData\Roaming\Subversion\auth 删除里面所有文件
- Alpha 冲刺 (5/10)
队名 火箭少男100 组长博客 林燊大哥 作业博客 Alpha 冲鸭鸭鸭鸭! 成员冲刺阶段情况 林燊(组长) 过去两天完成了哪些任务 协调各成员之间的工作 协助前后端接口的开发 测试项目运行的服务器环 ...
- MySQL缓存参数优化(转)
MySQL 数据库性能优化之缓存参数优化 数据库属于 IO 密集型的应用程序,其主要职责就是数据的管理及存储工作.而我们知道,从内存中读取一个数据库的时间是微秒级别,而从一块普通硬盘上读取一个IO是在 ...
- python函数(二)
python函数(二) 变量的作用域 1.局部变量与全局变量 在函数内创建的变量被称为局部变量,这类变量的生命周期与函数相同,当函数执行完毕时,变量也就随之消失. 此类变量只能在函数内部调用,函数外不 ...
- Hibernate 映射及查询
实体类和实体之间的关系:一对多,多对多 数据库设计:e_r 一个实体对象就是一个表格, 如果是1对多的关系,将多方的主键拿到1方做外键. 多对多:重新建立一张新的表格,将双方的主键拿到这里做外键 ...
- Unity3D使用EasyMovieTexture插件播放视频
Unity3D对于视频的播放兼容个人感觉很差劲,之前写过一篇使用Unity3D自己自带的一些功能去播放视频,链接如下: http://www.cnblogs.com/xiaoyulong/p/8627 ...