1.@PathVariable 注解
@PathVariable 是 Spring 框架的一个注解,用于将 URI 中的变量绑定到 Spring MVC 控制器中 的方法参数。允许我们从 URI 路径中提取值并将它们映射到控制器中的方法参数。
使用场景:前端采用请求路径变量的形式.表现为 /...
例子:
@GetMapping("/{id}")
public R<Employee> getById(@PathVariable("id") Long ids){
}
当@PathVariable("id") Long id请求的路径变量和方法参数名称相同时可以省略("id")
@GetMapping("/{id}")
public R<Employee> getById(@PathVariable Long id){
}
PS:
2.@RequestParam注解
使用场景:前端采用了查询参数的形式.表现为 ?...
当controller方法中的参数名称和路径中参数名称一致时,可以省略该注解.
反之就得使用它:
eg.若前端传了http://localhost:8080/user/list?name=Tom&age=18
@GetMapping("/list")
public R<List<User>> list(@RequestParam(value = "name", required = false) String name1,
@RequestParam(value = "age", required = false) Integer age1) {
return null;
}
属性:
value/name属性一致,使用与required属性有关;
required:默认为true,当为true时,若路径参数名和value/name属性名不一致时就会报错,为false时不会,这也是该注解主要用途:解决前端传递的参数与后端接收的参数不一致的问题;
defaultValue:默认值
总结:最好写的前后端对应参数名一样.
3.@RequestBody注解
使用场景:用于接收前端传递过来的json数据并进行数据绑定
主要用于接收前端发送的复杂数据类型,例如:多层嵌套的数据,或者前端发送的是一个实体对象。
比如:前端传递uesr中的某个/某些属性
@PostMapping("/test")
public R<String> test(@RequestBody User user){
log.info("接收到的数据为:{}",user);
return R.success("请求成功");
}