Controller层中常用的接收前端参数的方式
@PathVariable
获取路径参数,即 url/{id} 这种形式,如下请求路径中 1 即为这里的 {id} 。
http://localhost:8080/param/path/1
@GetMapping(value = "/param/path/{id}")
public String pathParams(@PathVariable String id){return "return id = " + id;
}
@RequestParam
获取查询参数,即 url?id=&name= 这种形式,如下请求(这里以GET请求方式为例)中,1 为 id 值,davis 为 name 值。
http://localhost:8080/param/request?id=1&name=davis
@GetMapping(value = "/param/request")
public String requestParams(@RequestParam(required = false) String id, @RequestParam(required = false) String name){return "return id = " + id + ", name = " + name;
}
required = false 表示该参数可以不存在。
注:
-
此方式一个参数对应一个注解,适用于少参数请求。
-
此方式支持GET、POST请求。
@RequestBody
这个只支持Post请求,而且Content-Type 必须为 application/json,请求路径为
http://localhost:8080/param/body
@PostMapping(value = "/param/body", method = RequestMethod.POST)
public String bodyParams(@RequestBody DTO dto){return "dto: " + dto.toString();
}