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接收参数的几种方式盘点

  • 相关阅读:
    Directory文档目录操作
    文件序列化和反序列化
    COOKIE
    转载深入ASP.NET MVC之二:路由模块如何工作
    Running 32Bit RDP on 64 Bit Windows OS
    MS CRM Isv Web.config设置
    QualifyLead PlugIn(转)
    MS CRM帮助访问不正确,
    (转)CrmTrace encountered an error. Additional Info:Error in GetFileName MS CRM
    MS CRM 2011储存电子邮件凭证
  • 原文地址:https://www.cnblogs.com/cobcmw/p/12095008.html
Copyright © 2011-2022 走看看