在写delete方法的时候,出现了bug
于是将@RequestParam换成@PathVariable
两者有何区别??
在Spring MVC框架中,@PathVariable
?和?@RequestParam
?是两种用于从HTTP请求中获取参数的注解,它们的区别在于:
@PathVariable:
{}
?包裹),比如?/users/{id}
,那么可以通过?@PathVariable("id")
?来捕获到URL中与{id}
对应的实际值。@GetMapping("/users/{userId}")
public User getUser(@PathVariable("userId") Long userId) {
// 使用userId来查找并返回用户对象
}
@RequestParam:
@GetMapping("/users")
public User getUser(@RequestParam("userId") Long userId) {
// 使用userId来查找并返回用户对象
}
对于GET请求,URL可能是?/users?userId=123
;对于POST等方法,请求体可能包含类似?userId=123
?的键值对。总结来说,@PathVariable
?主要用于处理URL路径中的动态部分,而?@RequestParam
?则是处理请求参数,包括查询字符串和某些类型的请求体中的参数。