SpringBoot Controller接收参数的几种方式盘点

时间:2022-07-08 11:52:50

本文不再更新,可能存在内容过时的情况,实时更新请移步我的新博客: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);
}

SpringBoot Controller接收参数的几种方式盘点

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

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

2.无注解

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

SpringBoot Controller接收参数的几种方式盘点

三、请求头参数以及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接收参数的几种方式盘点