Required request parameter ‘***‘ for method parameter type String is not present
今天在学习 SpringBoot 的过程中遇到了这个问题。
问题背景
今天想实现一个更改用户头像的功能,Controller 层代码如下
@PatchMapping("/updateAvatar")
public void updateAvatar (@RequestParam String url){
userService.updateAvatar(url);
}
在调用该功能的时候出现了 Required request parameter ‘url’ for method parameter type String is not present 这个错误。
原因及解决
如图,前端发送请求时携带的参数名称为 avatarUrl,而我在 controller 层接受时用的 url,导致后端接受不到名为 url 的参数。
可以将 controller 层对应代码改成与请求参数相同
@PatchMapping("/updateAvatar")
public void updateAvatar (@RequestParam String avatarUrl){
userService.updateAvatar(avatarUrl);
}
也可以在 @RequestParam 上添加 value 属性,表明收到的参数和前端请求时携带的参数名称相同
@PatchMapping("/updateAvatar")
public void updateAvatar (@RequestParam(value = "avatarUrl" String url){
userService.updateAvatar(url);
}