@PathVariable指定请求的URL路径里面的变量

最近在做毕设“基于SSM的购物网站”,商品有很多种分类,我想在点击具体一个时,url发生变化,并动态加载页面上的商品信息。
最终效果:
1.女装 url:http://localhost:8181/SevenShop/product/nvzhuang
这里写图片描述
2.男装 url:http://localhost:8181/SevenShop/product/nanzhuang
这里写图片描述
(这里比较懒,数据库就存了一个男装商品)
实现方法:
@PathVariable指定请求的URL中的变量(值由前台form表单传给后台);
具体代码:
1.Java

    @PostMapping("/{cname}")
    public String getProductsByCid(Model m,@PathVariable String cname,String cid){
        List<Product> pList = pService.getProductsByCid(Integer.valueOf(cid));
        m.addAttribute("pList", pList);
        return "product/category";
    }

2.JSP

<ul id="products">
    <c:forEach items= "${pList}" var="d">
        //使用${d.字段名}将所需内容展示出来 
    </c:forEach>            
</ul>
    <div id="ceng" style="display: inline-block;">
        <form action="" name="form1" method="post" id="form11">
            <input type="hidden" name="cid" value="100" id="cidValue"/>
            <input type="hidden" name="cname" value="nvzhuang" id="cnameValue"/>
            <a href="" id="100" name="nvzhuang">女装</a>              
            <a href="" id="101" name="nanzhuang">男装</a>
            ......
        </form>
    </div>

3.JS

    var cid = $('#cidValue').val();//获取隐藏cidValue中cid值
    var cname = $('#cnameValue').val();//获取隐藏cnameValue中cname值
    $("#form11 a").click(function(){
        //将当前点击的a标签的id值赋给cid
        cid = $(this).attr('id');
        //将当前点击的a标签的name值赋给cname
        cname = $(this).attr('name');
        //改变隐藏cidValue,cnameValue的值
        $('#cidValue').val(cid);
        $('#cnameValue').val(cname);
        //为表单的action属性值赋值
        $('#form11').attr('action',cname);
        //点击当前a标签,提交表单
        $(this).attr('href','javascript:document:form11.submit();');
    });

总结:
本人较笨,用的方法都较蠢,欢迎指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值