我的理解是请求参数是传递方法所需的id,而path变量表示应该在请求过程中找到此变量
@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));
}
答案 0 :(得分:2)
<强>您好强>,
@RequestParam是作为查询参数绑定的参数。例如,此参数可以是应用过滤器的可选项。
google.com?query=param
@PathVariable是绑定为url中param的参数。需要通知此参数。
yourapp.com/users/pathparam
答案 1 :(得分:0)
RequestParam映射到URL上的命名URL参数。
PathVariable是URL路径的一部分,可以更改但仍映射到同一个控制器映射
例如
http://somedomain.com/account/123/details?type=sometype
这里123是一个PathVariable,可以命名我们想要的任何东西,sometype是RequestParam的值,它必须是名称类型。
答案 2 :(得分:0)
@ QueryParam 用于访问URL的查询字符串中的键/值对(后面的部分?)。例如,在网址http://stackoverflow.com/questions?q=query中,您可以使用@QueryParam(“q”)来获取q的值。
@ PathParam 用于将网址的一部分作为参数进行匹配。例如,在http://stackoverflow.com/questions/ {questionid}形式的网址中,您可以使用@PathParam(“questionid”)来获取问题的ID