可以将数组参数传递多次,springmvc会将多个同名参数自动封装成数组或者集合对象
,示例如下:
请求URL
http://127.0.0.1:8099/springbootIntegration/test/testQuest?page=1&size=2&ids=11&ids=22
后端接口
@RestController
@RequestMapping("/test")
public class ControllerTest {
@GetMapping("/testQuest")
public String testQuest( @RequestParam int page, @RequestParam int size, @RequestParam String [] ids){
return "Hello World";
}
}
示例如下:
请求URL
http://127.0.0.1:8099/springbootIntegration/test/testQuest?page=1&size=2&ids=11,22
后端接口
@RestController
@RequestMapping("/test")
public class ControllerTest {
@GetMapping("/testQuest")
public String testQuest( @RequestParam int page, @RequestParam int size, @RequestParam String [] ids){
return "Hello World";
}
}
Get请求一般用请求头来传递简单参数、但也可用Body传递对象,甚至可以一起使用。
如下:
Params加入page、size参数
Body中加入数组对象
后端接口
@RestController
@RequestMapping("/test")
public class ControllerTest {
@GetMapping("/testQuest")
public String testQuest( @RequestParam int page, @RequestParam int size, String [] ids){
return "Hello World";
}
}
我们知道@RequestParam可以通过value属性指定参数名,requ设置参数是否必须、设置参数默认值等。
三个参数加不加@RequestParam都正确,下面两种也正确:
@GetMapping("/testQuest")
public String testQuest( int page, int size, String [] ids){
return "Hello World";
}
@GetMapping("/testQuest")
public String testQuest( @RequestParam int page, @RequestParam int size, @RequestParam String [] ids){
return "Hello World";
}
注意:
接口参数String [] 加@RequestParam
时,此参数只能放在GET请求的Params中
接口参数String [] 加@RequestBody
时,此参数只能放在GET请求的Body中
若接口参数是一个List< Object> 或者实体对象 需要@RequestBody注解,参数只能放在GET请求的Body中