• PathVariable、RequestParam和RequestBody


    package com.zyp.controller.test;
    
    import com.zyp.common.NoLogin;
    import io.swagger.annotations.Api;
    import io.swagger.annotations.ApiOperation;
    import org.springframework.web.bind.annotation.*;
    
    /**
     * @author syl
     * @description 面试复习
     * @since 2022/6/29
     */
    @RestController
    @RequestMapping("test11/")
    @Api(tags = "面试复习")
    public class TestController1 {
    
        @ApiOperation("测试requestParam")
        @GetMapping("requestParam")
        @NoLogin
        public String testRequestParam(@RequestParam String id){
            return id;
        }
    
        @NoLogin
        @ApiOperation("测试requestParam")
        @GetMapping("PathVariable/{id}")
        public String testPathVariable(@PathVariable String id){
            return id;
        }
    }
    
    • 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
    • 31

    输入url:http://localhost:9002/test11/requestParam
    结果:报400错,默认参数id是必传的,若使用此注解时要求id不是必传的,则要求给注解的defaultValue()属性赋值,比如@RequestParam(defaultValue = “1”)
    输入url:http://localhost:9002/test11/requestParam?id=1
    结果:返回1
    输入url:http://localhost:9002/test11/PathVariable/
    结果:报400错,默认参数id是必传的,若使用此注解时要求id不是必传,则@PathVariable(required = false),此时参数值可以为null
    输入url:http://localhost:9002/test11/PathVariable/1
    结果:返回1

    package com.zyp.controller.test;
    
    import com.zyp.common.NoLogin;
    import io.swagger.annotations.Api;
    import io.swagger.annotations.ApiOperation;
    import org.springframework.web.bind.annotation.*;
    
    /**
     * @author syl
     * @description 面试复习
     * @since 2022/6/29
     */
    @RestController
    @RequestMapping("test11/")
    @Api(tags = "面试复习")
    public class TestController1 {
    
        @ApiOperation("测试requestParam")
        @GetMapping("requestParam")
        @NoLogin
        public String testRequestParam(@RequestParam(value = "id1") String id){
            return id;
        }
    
        /**
         * PathVariable/{id1}的id1必须和@PathVariable(value = "id1")的value的一致方可取出相应的值
         * @param id
         * @return
         */
        @NoLogin
        @ApiOperation("测试requestParam")
        @GetMapping("PathVariable/{id1}")
        public String testPathVariable(@PathVariable(value = "id1") String id){
            return id;
        }
    }
    
    • 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
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    输入url:http://localhost:9002/test11/requestParam?id=1
    结果:报400错,@RequestParam(value = “id1”)表示从路径或者请求体中参数id1,如果没有参数id1则报错
    注:@RequestParam(name = “id1”)同上
    输入url:http://localhost:9002/test11/requestParam?id1=1
    结果:返回1

    总结:PathVariable一般用于get请求,取出路径中的参数
    RequestParam可以用于所有请求,取出对应的参数值
    RequestBody:用于接收请求体的参数,不能用于get请求中

  • 相关阅读:
    计算机毕业论文Java项目源码下载基于SSM实现的宠物销售网站
    element-ui在vue中如何实现校验两个复选框至少选择一个!
    1500*B. Zero Array(贪心&数学&找规律)
    老杨说运维 | 证券行业运维数字化和智能化转型实践探索
    初识C++
    深度学习系列53:mmdetection上手
    【C++/STL】手撕红黑树
    js设计模式:组合模式
    正则系列之 Unicode 属性转义(Unicode Property Escapes)
    Prism 2.4.1 在VS里的奇怪报错
  • 原文地址:https://blog.csdn.net/m0_46360888/article/details/125529914