欢迎光临
感受代码之美

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);
}

how-to-get-parameters-in-spring-boot-1.jpg

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

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

2.无注解

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

how-to-get-parameters-in-spring-boot-2.jpg

三、请求头参数以及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());
        }
    }
}

References

  1. SpringBoot Controller接收参数的几种常用方式
赞(0)
未经允许禁止转载:四个空格 » SpringBoot Controller接收参数的几种方式盘点

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址