注解@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();
}

Made with in Shangrao,China By Devler.

Copyright © Devler 2012 - 2022

赣ICP备19009883号-1

Top ↑