zoukankan      html  css  js  c++  java
  • @RequestParam和@PathVariable的区别和使用

    请求路径上的区别:很明显一个是     https:url ?键值对,一个是https:url /参数   ,区别很明显

    @PathVariable主要用于接收http://host:port/path/{参数值}数据。@RequestParam主要用于接收http://host:port/path?参数名=参数值数据,这里后面也可以不跟参数值。

    @RequestParam用于获取参数,可获取?username="sss"这种?后面的参数值

    如:访问路径为:http://localhost:7012/billing/pay/paySerial?paySerialId=20190821155435120115620216832

        @GetMapping("/paySerial")
    //    @RequestMapping(value= "/paySerial",method =RequestMethod.GET)
        public PaySerialRes qryPaySerialDetail(@RequestParam(name = "paySerialId", required = false) String paySerialId) {
            log.info("传入的id为;{}",paySerialId);
            return paySerialService.qryPaySerialDetail(paySerialId);

    当传入参数的名字和方法中的名字相同时,可以直接@RequestParam String paySerialId,或者直接省略@RequestParam,参数名字相同时,Spring默认会装载进去,但是加上@RequestParam表示这个参数必填

    如请求 url:http://localhost:7012/billing/pay/paySerial?paySerialId=20190821155435120115620216832

    如果请求的参数名和方法名不一致时:则:@RequestParam(name = "abc"  String paySerialId,这样子就可以将abc和paySerialId映射上

    abc和请求带过来的参数名一样,如:http://localhost:7012/billing/pay/paySerial?abc=20190821155435120115620216832;

    @RequestParam(value = "paySerialId", required = false, defaultValue = "1")   required 默认为true 表示这个参数必填,设置为false则表示非必填

    @RequestParam 支持下面四种参数

    defaultValue 如果本次请求没有携带这个参数,或者参数为空,那么就会启用默认值
    name 绑定本次参数的名称,要跟URL上面的一样
    required 传入的参数是否必须,默认是true,表示请求中一定要有相应的参数,否则将报404错误码;
    value 跟name一样的作用,是name属性的一个别名

    使用@PathVariable接收参数,参数值需要在url进行占位, 前端传参的URL:url = “/main/mm/am/${Id}/${name}”

    如:http://localhost:7012/billing/pay/paySerial/20190821155435120115620216832

        @GetMapping("/paySerial/{aaaa}")
        public PaySerialRes qryPaySerialDetail(@PathVariable("aaaa") String paySerialId) {
            log.info("传入的id为;{}",paySerialId);
            return paySerialService.qryPaySerialDetail(paySerialId);
        }

    直接写@PathVariable String paySerialId也是可以的,但是参数名和paySerialId要一致才行,否则就要这样@PathVariable("aaaa") String paySerialId,建立映射关系,和上面其实差不多

    PathVariable 注解的required = false 表明参数不是必需的

    @PathVariable(name = "paySerialId",required = true) ,不加上name会报错的,这里的name和value作用应该也是一样

  • 相关阅读:
    C语言格式化字符串细节 --- %*s %*c %*.*s
    ROC曲线与AUC计算总结
    python 数字列表排序,输出对应的索引 | 转载
    python 类间的有趣调用
    Linux下以16进制形式显示文件内容的方法
    一些书签
    椭圆曲线算数原理与实现
    中国剩余定理来解密RSA密文
    在GridView控件内文本框实现TextChanged事件,勾选复选框时 :textbox文本框可编辑,编辑文本框的数字后 总金额会重新计算并统计
    关于RDLC子报表添加参数 错误“本地报表处理期间出错 。值不能为空。 参数名:value” 错误解决方法
  • 原文地址:https://www.cnblogs.com/cherishforchen/p/11402760.html
Copyright © 2011-2022 走看看