zoukankan      html  css  js  c++  java
  • SpringBoot Controller接收参数的几种方式盘点

    本文不再更新,可能存在内容过时的情况,实时更新请移步我的新博客:SpringBoot Controller接收参数的几种方式盘点

    SpringBoot Controller接收参数的几种常用方式盘点如下:

    一、请求路径参数

    1.@PathVariable

    适用于url包含请求参数的情况,例如:/common-bsp/bsp/organ/{struIds},后台接收示例:

        @DeleteMapping("/{struIds}")
        public ResponseResult deleteOrgan(@PathVariable String struIds) {
            return service.deleteOrgan(struIds);
        }
    

    2.@RequestParam

    适用于Get请求,将参数放置于请求地址后面的情况,例如:userEdit.html?operaType=add,后台接收:

        @GetMapping(value = "/struExtAndOrgan")
        public ResponseResult getStruExtAndOrgan(@RequestParam HashMap<String, Object> parameters) {
            return pubStruExtService.getStruExtAndOrgan(parameters);
        }
    

    3.@ModelAttribute

    适用于从Form表单或URL参数中获取(实际上,不用此注解也能拿到pubOrgan对象)。

        @GetMapping("/organs")
        public ResponseResult queryOrgans(@ModelAttribute PubOrgan pubOrgan) {
            ResponseResult responseResult = new ResponseResult(service.select(pubOrgan));
            return responseResult;
        }
    

    更多@ModelAttribute注解用法参考:全面解析Spring中@ModelAttribute注解的用法

    二、Body参数

    1.@RequestBody

    @PostMapping
    public ResponseResult addNextLevel(@RequestBody PubOrgan pubOrgan) {
        return service.addNextLevel(pubOrgan);
    }
    

    类似的也可以像下面这样:

    @PostMapping
    public ResponseResult addNextLevel(@RequestBody HashMap<String, Object> parameters) {
        return service.addNextLevel(parameters);
    }
    

    2.无注解

    @PostMapping
    public ResponseResult addNextLevel(PubOrgan pubOrgan) {
        return service.addNextLevel(pubOrgan);
    }
    

    三、请求头参数以及Cookie的获取

    需要借助@RequestHeader@CookieValue注解:

    @GetMapping("/demo3")
    public void demo3(@RequestHeader(name = "myHeader") String myHeader,
            @CookieValue(name = "myCookie") String myCookie) {
        System.out.println("myHeader=" + myHeader);
        System.out.println("myCookie=" + myCookie);
    }
    

    或者

    @GetMapping("/demo3")
    public void demo3(HttpServletRequest request) {
        System.out.println(request.getHeader("myHeader"));
        for (Cookie cookie : request.getCookies()) {
            if ("myCookie".equals(cookie.getName())) {
                System.out.println(cookie.getValue());
            }
        }
    }
    

    本文不再更新,可能存在内容过时的情况,实时更新请移步我的新博客:SpringBoot Controller接收参数的几种方式盘点

  • 相关阅读:
    js-事件总结
    iquery-个人总结
    CSS3-页面样式
    野生码农狂奔中的2014年度年终总结
    算不算被虚度的这几年
    在Ubuntu 12.4 下安装 nginx, MySQL, PHP
    使用WP8最新的AudioVideoCaptureDevice类制作录像应用
    WP8 MediaElement 实现循环播放
    WPF(WP7、WP8)多个Listbox嵌套时滚动问题的解决
    Weibo SDK WP版本回调参数没有uid的解决方法
  • 原文地址:https://www.cnblogs.com/cobcmw/p/12095008.html
Copyright © 2011-2022 走看看