Ajax请求JSON数据回显到模态框(jsp回显)

news/2024/7/10 23:52:16 标签: js, ajax, jquery

Ajax请求JSON数据回显到模态框(jsp回显)

说明

jsp数据回显,通过Ajax请求servlet,将查询到的数据返回给jsp页面或者模态框中显示,以便用户在更新数据时提高用户体验。

示例代码

我这里用了弹窗。我个人感觉我写不出好的前端
1.css 代码(弹窗样式):

/* 边框及背景样式 */
.black_overlay {
	position: fixed;
    width:100%;
    height:100%;
    top:0;
    left:0;
    display: none;
    background-color: rgba(0, 0, 0, 0.1);
}
/* 修改 */
.white_content1 {
	display: none;
	position: absolute;
	top: 25%;
	left: 25%;
	width: 24%;
	height: 50%;
	padding: 20px;
	border: 1px solid orange;
	background-color: white;
	z-index: 1002;
	overflow: auto;
}

2.js 代码(触发弹窗):

//修改
$(function() {
	$("#updateId").click(function() {
		document.getElementById('light1').style.display = 'block';
		document.getElementById('fade').style.display = 'block';
	});
	$("#buttonId1").click(function() {
		document.getElementById('light1').style.display = 'none';
		document.getElementById('fade').style.display = 'none';
	});
});

3.jsp代码:

<!--修改地址 -->
		<form action="OrderMasterServlet?id=${listUserAddress.id}&method=update" method="post" >
				<div id="light1" class="white_content1">
					<span size="4" color="red"><em>修改我的收获地址:</em></span><hr>
					
					收货人姓名:*<input type="text" name="AddrName" id="AddrNameId"><br><br>
					电话号码&emsp;:*<input type="text" name="AddrPhone" id="AddrPhoneId"><br><br>
					省&emsp;&emsp;&emsp;&emsp;:*<input type="text" name="Province" id="ProvinceId"><br><br>
					市&emsp;&emsp;&emsp;&emsp;:*<input type="text" name="City" id="CityId"><br><br> 
					详细地址&emsp;:*<input type="text" name="Detail" id="DetailId"> <br><br>
					<div id="div4">
						<input type="button" name="close" value="取消" id="buttonId1" />
							&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;
	 					<input type="submit" value="确定">
 					</div>
				</div> 
        		<div id="fade" class="black_overlay"></div>
		 </form>
		<a href = "javascript:void(0)" id="updateId" onclick="but(${listUserAddress.id})"><font size="3">修改</font></a>

4.jsp上的ajax代码:

<script type="text/javascript" src="admin/style/js/jquery-1.8.3.min.js" ></script>
<script type="text/javascript">
//通过id来修改数据
function but(id){
	//获取servlet传过来的值
	$.ajax({
		type:'post',
		//async : 'false', //async,true是异步传输,false指同步传输
		dataType:'json', //dataType是数据类型,json: 返回 JSON 数据 。
		cache : 'false', //cache属性是flase时:每次读取的是最新的数据。
		url:'UpdateUserAddrServlet',
		data:{"id":id},
		success:function(data){
			//将数据回显到弹窗
			$("#AddrNameId").val(data.addrName);
			$("#AddrPhoneId").val(data.addrPhone);
			$("#ProvinceId").val(data.province);
			$("#CityId").val(data.city);
			$("#DetailId").val(data.detail);
		}
	});
}
</script>

5.servlet代码:

@WebServlet("/UpdateUserAddrServlet")
public class UpdateUserAddrServlet extends HttpServlet {

	private OrderMasterService orderMasterService = new OrderMasterServiceImpl();

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		this.doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 要先查询要修改的数据,为了在页面中显示
		// 获取要修改地址的id
		String id = request.getParameter("id");
		// 判断获取的id值,如果获取的id值为空,则不能进行更新操作
		if (id.length() == 0) {
			// 如果获取的id值为空,则返回页面并提示
			response.getWriter().append("<script language='javascript'>"
					+ "alert('您还没有地址,不能进行修改操作,请先添加地址!');window.location.href=" + "'submitOrder.jsp';</script>");
		} else {
			UserAddress find;
			try {
				// 调用findUserAddressById方法,将要修改的地址显示出来
				find = orderMasterService.findUserAddressById(Integer.parseInt(id));
				//new 一个Gson()对象,将查到的数据返回给Ajax
				Gson gson = new Gson();
				String json = gson.toJson(find);
				PrintWriter out = response.getWriter();
				//将值传递给Ajax
				out.print(json);
				out.flush();
				out.close();
			} catch (NumberFormatException | SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

所用到的jar包

百度网盘获取jar包:
链接:https://pan.baidu.com/s/1YXtuKovGimQ69wYYFKHHxw
提取码:k86s


在学习中总会遇到各种问题,在解决之后,下次不一定还会记得,所有把它写在博客上,一方面可以下次查看;另一方面可以分享出来,有不足之处,望批评指正。


http://www.niftyadmin.cn/n/1410325.html

相关文章

c3p0连接池连接数据库 并增删改查

使用c3p0连接池连接数据库 示例&#xff08;mvc模式&#xff09; 1.mysql.properties &#xff08;连接数据库的&#xff09;文件&#xff1a; drivercom.mysql.jdbc.Driver urljdbc:mysql://localhost:3306/test?useSSLfalse&serverTimezoneUTC&characterEncoding…

Java中普通连接数据库的方法

Java中用普通方法连接数据库 示例 1.mysql.properties 文件&#xff1a; drivercom.mysql.jdbc.Driver urljdbc:mysql://localhost:3306/product?useSSLfalse&serverTimezoneUTC&characterEncodingutf8&useUnicodetrue usernameroot password1234562.util 类&a…

登录注册页面上验证码的生成(jsp)

验证码的生成&#xff08;图片验证码&#xff09; 相信下次还需要用的图片验证码的验证&#xff0c;放到自己的博客上下次容易找哦 代码 1.后台 controller层 Controller RequestMapping("/code") public class CodeController {public int width110;//图片宽度p…

html+js 如果不同意协议,则不能提交表单

htmljs 如果不同意协议&#xff0c;则不能提交表单 登录、注册页面&#xff0c;安装一些软件是上面会有协议&#xff0c;如果没有勾选同意协议&#xff0c;则不能提交。又一次项目笔记 示例 1.jsp页面 <!-- 协议 --> <div id""><input type"…

JPA常用注解和JPA的状态

JPA入门程序 1.工程布置如下 2.xml文件配置 <?xml version"1.0" encoding"UTF-8"?> <persistence version"2.0" xmlns"http://java.sun.com/xml/ns/persistence" xmlns:xsi"http://www.w3.org/2001/XMLSchema-insta…

JPA中(单向)多对一关联关系【1】

JPA多对一关系映射 1.实体类 1).Employee实体类 /*** 如何将java实体类&#xff0c;与mysql中的表映射呢&#xff1f;* 通过注解进行配置即可。* 编写实体类&#xff0c;关于基本类型属性&#xff0c;一定不要使用基本类型&#xff0c;而是* 使用对应的包装类型&#xff0c…

JPA中(单向)一对多关联关系 【2】

JPA中(单向)一对多 映射关系 示例&#xff1a; 1.Department实体类 /*** 单向一对多的配置&#xff0c;在一方Department中&#xff0c;使用List来存储多方Employee* author boge*/ Entity public class Department {private Integer deptId;private String deptName;privat…

JPA中双向一对多(双向多对一)关联关系 【3】

JPA中双向一对多(双向多对一)关联关系 示例&#xff1a; 1.Department实体类 /*** 单向一对多的配置&#xff0c;在一方Department中&#xff0c;使用List来存储多方Employee* author boge*/ Entity public class Department {private Integer deptId;private String deptNa…