毕业设计进行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. react项目的react-router-dom路由的使用

    现在测试一下react-router-dom路由的使用,首先在App.js这个文件搭配路由 import React, { Component } from 'react'; import {Link ...

  2. Zabbix安装部署(CentOS系统下)

    zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统 ...

  3. 小姐姐手把手教你JS数组中的对象去重

    有时候数据库中的数据重复的,我们另一个需求需要数据的唯一性 那么这时候就用到这个方法了  我还是以截图的方式发粗来  不然太丑了 见谅 console.log(map)打印出来的结果已经帮我们把需要的 ...

  4. JSP内置对象seesion

    什么是session session表示客户端与服务器的一次会话 Web中的session指的是用户在浏览某网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间 从上述定 ...

  5. Eclipse添加JDK,JRE切换

    Eclipse添加JDK Window---preferences 切换JDK,JRE

  6. 【慕课网实战】Spark Streaming实时流处理项目实战笔记二十一之铭文升级版

    铭文一级: DataV功能说明1)点击量分省排名/运营商访问占比 Spark SQL项目实战课程: 通过IP就能解析到省份.城市.运营商 2)浏览器访问占比/操作系统占比 Hadoop项目:userA ...

  7. 利用UML语言建模--以图书馆管理系统为例

    一.基本信息 标题:利用UML语言建模--以图书馆管理系统为例 时间:2016 出版源:内蒙古科技与经济 领域分类:UML:RFID:图书馆:模型: 二.研究背景 问题定义:建立图书馆管理系统 难点: ...

  8. Linux(以RHEL7为例)下添加工作区的方法|| The Way To Add Workspace On Linux

    Linux(以RHEL7为例)下添加工作区的方法 The Way To Add Workspace On Linux 作者:钟凤山(子敬叔叔) 编写时间:2017年5月11日星期四 需求:有时候在使用 ...

  9. InternalResourceViewResolver视图解析器(转)

    转载地址:https://www.cnblogs.com/liruiloveparents/p/5054605.html springmvc在处理器方法中通常返回的是逻辑视图,如何定位到真正的页面,就 ...

  10. PHP几种加密方式

    1.MD5() 2.Sha1() 3.urlencode()方法用于加密,urldecode()方法用于解密 4.base64_encode (  )  64位加密   base64_decode ( ...