问题杂谈(三十六)@RequestBody、@RequestParam和@PathVariable三个注解的区别和使用

总结:

  • 在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用
  • @RequestBody最多只能有一个,而@RequestParam()可以有多个
  • RequestBody 接收的是请求体里面的数据,所以一般用POST请求;而RequestParam接收的是key-value里面的参数,所以没啥限制
  • 参数带上@RequestBody,对应类里面的某些属性可以没有;但若带上@RequestParam,对应的参数一定要有,否则会报错(但也可以通过required属性来调节)
//使用如下
@RequestMapping(value = "/getList.do", method = RequestMethod.POST)
public String getList( @RequestBody AdminVO adminVO, BindingResult result) {
    // 参数校验
    ThrowableUtils.checkParamArgument(result);
    return adminService.getList(adminVO);
}

@RequestMapping(value = "/delete.do", method = RequestMethod.POST)
public String delete(@RequestParam String adminUids) {
    return adminService.deleteBatchAdmin(adminUids);
}
  • @PathVariable 映射 URL 绑定的占位符,一般用GET请求,用法如下
@RequestMapping(value="/getUser/{name}", method = RequestMethod.GET)
public User getUser(@PathVariable String name){
    return userService.selectUser(name);
}

参考

  • https://blog.csdn.net/weixin_45393094/article/details/108814901
  • https://blog.csdn.net/justry_deng/article/details/80972817

你可能感兴趣的:(问题集合,json,Java)