RequestBody与RequestParament的区别
-
@RequestBody主要用来接收从Body中传入的数据,而@RequestParam是从URL中读取数据
-
基于第一条的两者的区别,可以分析得知,@RequestBody只适用于Post的提交方式,而@RequestParam适合于Get的提交方式(不能理解可以参考链接)
-
因为@RequestBody是从Body中读取数据,他是将Body中所有传入的数据,全部封装到了一个对象里面,后面可以get方法获取参数,所以能声明一个,而@RequestParam是根据Value=“key”,进行锁定传入的值,所以可能声明多次。
-
两者的具体使用不同(以一个登录操作为例)
Post中@RequestBody的使用
//将前端的数据全部放入到json对象中
@PostMapping("/faceService/logins")
public JSONObject logins(@RequestBody JSONObject json) {
//通过get的方法,获取前端传入的参数
String userName = json.getString("userName");
String password = json.getString("password");
.......
}
Get中@RequestParam的使用
@GetMapping("/faceService/logins")
public JSONObject logins( @RequestParam(value = "userName") String userName ,
@RequestParam(value = "password") String password) { //使用RequestParam
//此处可以直接使用参数,因为已经在形参中定义,
//将值直接赋入,但如果没有这个参数名,就会为空。
if (StringUtils.isEmptyBatch(userName, password)) {
.......//处理
}
.......
}