美文网首页
SpringBoot Controller接收参数的几种常用注解

SpringBoot Controller接收参数的几种常用注解

作者: wyn_做自己 | 来源:发表于2021-12-16 17:04 被阅读0次

    今日份鸡汤:一岁一礼,一寸欢喜,往后余生,积极向上的生活,热气腾腾的活着。

    1、请求路径中带参数 使用 @PathVariable 获取路径参数。即url/{id}这种形式。
    demo:

    @RestController
    public class GetRequestParamDemo {
    
        @RequestMapping(path = "/pathVariableTest/{userId}")
        public String pathVariableTest(@PathVariable(name = "userId") String userId, String userName) {
            return "hello " + userName + " your id is " + userId;
        }
    }
    

    运行结果展示:


    image.png

    2、@RequestParam 获取查询参数。即url?name=这种形式,用于get/post。springboot默认情况就是它,类似不写注解
    demo:

    @RestController
    public class GetRequestParamDemo {
    
        @RequestMapping(path = "/requestParamTest")
        public String requestParamTest(@RequestParam(value = "name", required = true) String name, @RequestParam(value = "id", required = true) int id) {
            return "this is " + name + " and his number is " + id;
        }
    }
    

    运行结果展示:


    image.png

    3、@RequestBody获取POST请求参数
    demo:

    @RestController
    public class GetRequestParamDemo {
    
        @RequestMapping(path = "/postParamTest")
        public Book postParamTest(@RequestBody Book book) {
            return book;
        }
    
    }
    

    运行结果展示:


    image.png

    4、请求头参数以及Cookie
    (1)@RequestHeader
    (2)@CookieValue
    demo:
    方式一:

    @RestController
    public class GetRequestParamDemo {
    
        @RequestMapping(path = "/headerAndCookieTest")
        public String headerAndCookieTest(@RequestHeader(name = "myHeader") String myHeader, @CookieValue(name = "myCookie") String myCookie) {
            return "myHeader: " + myHeader + ",and myCookie: " + myCookie;
        }
    
    }
    

    运行结果展示:


    image.png

    方式二:

    @RestController
    public class GetRequestParamDemo {
    
        @RequestMapping(path = "/headerAndCookieTest2")
        public String headerAndCookieTest2(HttpServletRequest request) {
            AtomicReference<String> myCookie = new AtomicReference<>("");
            Arrays.stream(request.getCookies()).filter(c -> Objects.equals("myCookie", c.getName())).forEach(m -> myCookie.set(m.getValue()));
            return "myHeader: " + request.getHeader("myHeader") + ",and myCookie: " + myCookie.get();
        }
    
    }
    

    运行结果展示:


    image.png

    相关文章

      网友评论

          本文标题:SpringBoot Controller接收参数的几种常用注解

          本文链接:https://www.haomeiwen.com/subject/tsrvfrtx.html