在一个请求中设置多个参数



我需要形成一个缓存,用于通过region_ids参数传递的按id的区域,请求看起来像这样:

localhost:8080/cache/mscache?region_ids=5,19....,23

如何最好地读取程序代码中的这几个参数?

为它们读取一个字符串,并将该字符串解析为您想要的任何内容:

@GetMapping("/cache/mscache)
public String getCache(@RequestParam String listOfRegionIds)
List<String> ids = Arrays.stream(listOfRegiosIds.split(",")).collect(Collectors.toList);
// ...
}

更多信息请访问https://www.baeldung.com/spring-request-param

您可以使用arrayList

@GetMapping(value = "/test")
public void test(@RequestParam List<String> ids) {
ids.forEach(System.out::println);
}

发出如下get请求:

http://localhost:8080/test?ids=1,2,3

点击此处查看更多详情。

如果请求是Get请求,请使用J Asgarov建议的@RequestParam,如果是其他请求,您也可以通过创建包含所有参数的类来使用@RequestBody

例如,Post请求可以是这样的:
@PostMapping("...")
public String postCache(@RequestBody RegionIdsRequest regionIds)
// ...
}
public class RegionIdsRequest{
List<int> regionsIds = //...
}