java - 有没有办法在 Spring 中从 URI 中获取路径变量列表?
问题描述
@RequestMapping(value = "/{ids}", method=RequestMethod.GET)
public String getMethod(@PathVariable List<String> ids){
}
我想要类似的东西,但我需要将请求映射到类似的东西:localhost:8080/id1/id2/id3/.../idn
我不知道路径变量(id)的数量,也不知道它们的名称。
解决方案
当您使用路径时,它实际上会添加到 uri 。uri 有长度限制。相关文章:HTTP GET 请求的最大长度
所以在不限制数量的情况下,不建议向uri添加多个参数作为路径变量。
您可以使用如下查询参数:
@RequestMapping(value = "/{ids}", method=RequestMethod.GET)
public String getMethod(@RequestParam("myparam") List<String> ids)
{
}
相反,您可以将其转换为发布请求,并拥有一个将数据列表作为对象的请求正文。
@PostMapping("/")
public ResponseEntity postController(
@RequestBody CustomPojo data) {
exampleService.fakeAuthenticate(data);
return ResponseEntity.ok(HttpStatus.OK);
}
class CustomPoJo {
List<String> ids;
//getter setter etc
}
json可能看起来像:
{"custompojo":["id1","id2"]}
推荐阅读
- c - C/C++ Windows 10 x64 (17763) 企业 DACL 问题
- amazon-web-services - sagemaker - 分解机器 - 反序列化模型
- java - 为什么选项的位置总是改变?
- java - 哈希码会给出负值吗?
- sql - Athena row_number 函数与 where 或 count 结合使用
- assembly - z80 汇编 if 语句
- excel - 使用宏对一系列单元格进行排序时,Microsoft Excel 运行时错误 438
- android - 如何在应用栏中将图标右对齐和文本左对齐?
- powershell - powershell - 如何在单个选择对象上引用自定义表达式属性
- javascript - 使用字符串调用对象变量