请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

URL的参数问题

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

正在回答

插入代码

2回答

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

0 回复 有任何疑惑可以回复我~
  • 提问者 SayCheese #1
    老师,后半部分有点没弄懂,“此时就会给后端发送查询这个shopId为1的店铺信息请求,然后获取到店铺信息展示出来”,这句话,按照我的理解是 js 中,$.getJSON()方法会给后端发送请求,但是,没能看出这个方法是怎么查询数据库的并获取对应d额 id 信息。
    回复 有任何疑惑可以回复我~ 2021-03-02 18:59:32
翔仔 2021-03-03 00:04:30

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

首先

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

这里会从url获取到shopId,

然后

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

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// 通过店铺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 回复 有任何疑惑可以回复我~
  • 提问者 SayCheese #1
    懂了,谢谢老师。是我之前没搞懂,而且忘了 Controller 层对参数的处理方式。
    回复 有任何疑惑可以回复我~ 2021-03-03 18:21:41
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号