Required request parameter ‘ids‘ for method parameter type List is not present]

Required request parameter ‘ids‘ for method parameter type List is not present]_第1张图片

在写delete方法的时候,出现了bug

于是将@RequestParam换成@PathVariable

两者有何区别? 

pathVariable和RequestParam的区别

在Spring MVC框架中,@PathVariable 和 @RequestParam 是两种用于从HTTP请求中获取参数的注解,它们的区别在于:

  1. @PathVariable:

    • 作用:用于从URL路径模板中的变量提取值。当你定义了一个RESTful风格的路由,其中包含动态部分(通常用花括号 {} 包裹),比如 /users/{id},那么可以通过 @PathVariable("id") 来捕获到URL中与{id}对应的实际值。
    • 示例:
       
      @GetMapping("/users/{userId}")
      public User getUser(@PathVariable("userId") Long userId) {
          // 使用userId来查找并返回用户对象
      }
    • 特点:适用于URL路径部分的参数提取。
  2. @RequestParam:

    • 作用:用于从HTTP请求的方法参数(如GET请求的查询字符串或POST请求的表单数据)中提取指定名称的参数值。
    • 示例:
         
      @GetMapping("/users")
      public User getUser(@RequestParam("userId") Long userId) {
          // 使用userId来查找并返回用户对象
      }
      对于GET请求,URL可能是 /users?userId=123;对于POST等方法,请求体可能包含类似 userId=123 的键值对。
    • 特点:适用于查询字符串、表单数据和多部分请求参数的提取,并且可以设置是否必填(required属性)、默认值(defaultValue属性)等。

总结来说,@PathVariable 主要用于处理URL路径中的动态部分,而 @RequestParam 则是处理请求参数,包括查询字符串和某些类型的请求体中的参数。

Required request parameter ‘ids‘ for method parameter type List is not present]_第2张图片

Required request parameter ‘ids‘ for method parameter type List is not present]_第3张图片

Required request parameter ‘ids‘ for method parameter type List is not present]_第4张图片

你可能感兴趣的:(开发语言,java,笔记,maven,spring,boot,mysql,后端)