注解@RequestBody的使用小结
2个月前 • 131次点击 • 来自 后端
标签: SpringBoot
@RequestBody
主要用来接收前端传递给后端的JSON字符串
@RequestParam 与 @RequestBody 同时使用
- @RequestBody只能有一个,而 @RequestParam 可有多个
- @RequestBody 接收的是请求体里面的数据;而 @RequestParam 接收的是 key-value 参数
User.java:
@Data
public class User{
private String name;
private String age;
}
Post请求带上json数据
{
"name": "123",
age: 456
}
Controller.java
// 请求: xxxx/test1
@RequestMapping("test1")
public String test1(@RequestBody User user){
return user.toString();
}
// 请求: xxxx/test2?token=111
//1. 在String token前指定了@RequestParam(“token”),那么前端必须要有token这个键时,请求才能正常进去,否者报400错误
//2. 可通过设置该注解的required属性来调节是否必须传
//3. 如果没有@RequestParam注解则token可为空,即前端可不传输token
@RequestMapping("test2")
public String test2(@RequestBody User user,@RequestParam("token") String token){
return token + " --- " + user.toString();
}
// 请求: xxxx/test3?arrays=111&arrays=222&arrays=333
@RequestMapping("test3")
public String test3(@RequestBody User user,@RequestParam("arrays") List<String> arrays){
StringBuilder sb = new StringBuilder();
for(String s : arrays){
sb.append(s);
sb.append(" ");
}
return sb.toString() + " --- " + user.toString();
}
// 请求: xxxx/test4?name=111&age=222
@RequestMapping("test2")
public String test2(@RequestBody User user1,User user2){
return user1.toString() + " --- " + user2.toString();
}