This question already has answers here:
@RequestParam vs @PathVariable
                                
                                    (7个答案)
                                
                        
                2年前关闭。
            
        

我的理解是请求参数是方法要传递的必需ID,而路径变量表示应在请求过程中找到此变量

   @PreAuthorize("hasRole('ROLE_COACH')")

    @PostMapping(value = "/courses/{courseId}/background/update")

    @ResponseStatus(HttpStatus.ACCEPTED)

    @ResponseBody

    public CourseLiteInfo updateBackground(@RequestParam("file") MultipartFile file,

                                           @PathVariable(value = "courseId") Long courseId) throws IOException {



        return new CourseLiteInfo(courseService.updateBackground(courseId, file));
}

最佳答案

你好

@RequestParam是绑定为查询参数的参数。例如,此参数可以是可选的以应用过滤器。

google.com?query=param


@PathVariable是绑定为url中的参数的参数。需要通知此参数。

yourapp.com/users/pathparam

10-06 08:15