一、
@PathVariable 注解可用于处理请求 URI 映射中的模板变量,并将其绑定到 Controller 方法参数。
示例
@GetMapping("/api/employees/{id}")
@ResponseBody
public String getEmployeesById(@PathVariable String id) {
return "ID: " + id;
}
在本例中,使用 @PathVariable 注解来提取 URI 的模板部分,该部分由变量 {id} 表示。
指定 PATH (路径)变量名
由于方法参数和路径变量的名称相同,可以不用主动设置模板路径变量的名称。
如果路径变量名不同,可以在 @PathVariable 注解的参数中指定:
@GetMapping("/api/employeeswithvariable/{id}")
@ResponseBody
public String getEmployeesByIdWithVariableName(@PathVariable("id") String employeeId) {
return "ID: " + employeeId;
}
二、
@RequestBody 注解是 Spring Framework 中用于标识方法参数的注解,它指示框架从请求体中获取数据,并将其转换为指定类型的 Java 对象。这使得开发者可以将客户端发送的 JSON 或 XML 数据映射到 POJO(普通 Java 对象)上,从而更加方便地处理请求数据。
@RequestBody 基本用法
以下是 @RequestBody 注解的基本用法:
@RestController
public class UserController {
@PostMapping("/users")
public ResponseEntity<User> createUser(@RequestBody User user) {
// 在这里处理 user 对象
// ...
return ResponseEntity.status(HttpStatus.CREATED).body(user);
}
}
在上述示例中,@RequestBody 注解标识的 User 参数会自动从请求体中解析,然后映射为 User 对象。
在使用 @RequestBody 注解时,需要注意以下事项:
数据转换:@RequestBody 注解默认使用框架提供的消息转换器,可以将 JSON、XML 等数据转换为 Java 对象。
请求方法:@RequestBody 注解通常用于处理 POST 或 PUT 请求,用于接收客户端发送的数据。
数据校验:在接收到请求体数据后,开发者应该进行适当的数据校验,以确保数据的完整性和准确性。
三、
@RequestParam
主要用于将请求参数区域的数据映射到控制层方法的参数上
我们需要知道@RequestParam注解主要有哪些参数
value:请求中传入参数的名称,如果不设置后台接口的value值,则会默认为该变量名。比如上图中第一个参数如果不设置value=“page”,则前端传入的参数名必须为pageNum,否则在后台接口中pageNum将接收不到对应的数据
required:该参数是否为必传项。默认是true,表示请求中一定要传入对应的参数,否则会报404错误,如果设置为false时,当请求中没有此参数,将会默认为null,而对于基本数据类型的变量,则必须有值,这时会抛出空指针异常。如果允许空值,则接口中变量需要使用包装类来声明。defaultValue:参数的默认值,如果请求中没有同名的参数时,该变量默认为此值