URL的参数问题

来源:6-4 店铺信息编辑之前端实现

SayCheese

2021-03-01

老师你好,之前的那个问题,不知道为什么我看不到您的回答了,抱歉让你重新回答一遍。原问题如下:视频里,网址后面如果是 shopoperation?shopId=1 ,那么就会显示店铺 id 为1的店铺信息,请问这是怎么实现的。我看后端Service层和Controller层代码没有响应这种形式的 RequesMapping 鸭。 谢谢老师了!

写回答

2回答

翔仔

2021-03-01

同学好,知道的,我现在贴链接的话需要过审,我大致说一下。主要是我们在js里面,会根据url链接的?,去获取相关的参数,这里问号后面是shopId 就会获取到shopId=1 然后js里面会判断如果能获取到shopId,就是认为是编辑原有商铺,此时就会给后端发送查询这个shopId为1的店铺信息请求,然后获取到店铺信息展示出来 同学可以看看js里面,就是这个方式,视频里也说了哈

0
1
SayCheese
老师,后半部分有点没弄懂,“此时就会给后端发送查询这个shopId为1的店铺信息请求,然后获取到店铺信息展示出来”,这句话,按照我的理解是 js 中,$.getJSON()方法会给后端发送请求,但是,没能看出这个方法是怎么查询数据库的并获取对应d额 id 信息。
2021-03-02
共1条回复

翔仔

2021-03-03

同学好,我把js的思路大致描述一下,中间省略很多代码,其实视频也说得清晰了,也可以看看视频

首先

	// 从URL里获取shopId参数的值
	var shopId = getQueryString('shopId');

这里会从url获取到shopId,

然后

	// 由于店铺注册和编辑使用的是同一个页面,
	// 该标识符用来标明本次是添加还是编辑操作
	var isEdit = shopId ? true : false;

这里isEdit会是true,证明是编辑,而不是添加,那么编辑的第一步就是要先获取原先店铺的信息

	// 编辑店铺前需要获取店铺信息,这里为获取当前店铺信息的URL
	var shopInfoUrl = "/o2o/shopadmin/getshopbyid?shopId=" + shopId;

此时就会去获取店铺信息了

	// 通过店铺Id获取店铺信息
	function getShopInfo(shopId) {
		$.getJSON(shopInfoUrl, function(data) {
			if (data.success) {
				// 若访问成功,则依据后台传递过来的店铺信息为表单元素赋值
				var shop = data.shop;
				$('#shop-name').val(shop.shopName);
				$('#shop-addr').val(shop.shopAddr);
				$('#shop-phone').val(shop.phone);
				$('#shop-desc').val(shop.shopDesc);
				// 给店铺类别选定原先的店铺类别值
				var shopCategory = '<option data-id="'
						+ shop.shopCategory.shopCategoryId + '" selected>'
						+ shop.shopCategory.shopCategoryName + '</option>';
				var tempAreaHtml = '';
				// 初始化区域列表
				data.areaList.map(function(item, index) {
					tempAreaHtml += '<option data-id="' + item.areaId + '">'
							+ item.areaName + '</option>';
				});
				$('#shop-category').html(shopCategory);
				// 不允许选择店铺类别
				$('#shop-category').attr('disabled', 'disabled');
				$('#area').html(tempAreaHtml);
				// 给店铺选定原先的所属的区域
				$("#area option[data-id='" + shop.area.areaId + "']").attr(
						"selected", "selected");
			}
		});
	}


1
1
SayCheese
懂了,谢谢老师。是我之前没搞懂,而且忘了 Controller 层对参数的处理方式。
2021-03-03
共1条回复

Java双版本(SSM到SpringBoot)校园商铺全栈开发

SSM商铺V1.0,解决毕设痛点;SpringBoot商铺V2.0,满足工作刚需

5113 学习 · 8144 问题

查看课程