java - 如何将多个 Map/List/Array 从 API url 传递到 Java 中的 RestController?
问题描述
我有一个接受 ArrayList、HashMap 和 List 作为参数和其他参数的方法。
methodName(String request,
ArrayList<String> referenceList,
HashMap<String, String> params,
Map<String, List<?>> inClause,
boolean isClassicFlatSuggestionBox) throws Exception {};
现在我知道如何从 url 接受普通字符串参数和单个 Map/List。
http://localhost:8888/restApi/getSuggestionData/sa/warehouse?number=20,age=4
这个 url 返回 2 个 Path 变量 String 参数和 Controller 的数字和年龄映射,如下所示
public ResponseEntity<Collection<?>> getSuggestionList(@PathVariable("request") String request,@PathVariable("reference") String reference, @RequestParam HashMap<String, String> params)
但是如何通过多个地图?我不能把所有东西都放在一张地图上,然后在控制器端玩。有没有办法直接在控制器端获取多个地图/列表?
解决方案
我建议将其更改为 POST 并添加包含必要对象的有效负载。然后您的控制器方法将如下所示:
@POST
public ResponseEntity<Collection<?>> getSuggestionList(
@PathVariable("request") String request, @PathVariable("reference") String reference, @RequestBody() Payload payload) { }
Payload 类包含您想要的列表:
public class Payload {
@XmlElement
private ArrayList<String> referenceList;
@XmlElement
private HashMap<String, String> params;
// getters and setters here or Lombok :)
}
推荐阅读
- powerbi - 比较列值与另一个表中的度量(散点图突出显示)
- bash - 使用一个 bash 命令删除多个 rpm 包
- java - ListView 项目中有多个可点击区域?
- sql - 水平缩放应用程序中的后台线程
- java - 使用远程 SQL 数据库的命令行
- java - 如何从对话框片段中打开新活动
- c# - 如何更改标题列的背景颜色以及如何更改列内标题文本的文本颜色?
- azure-application-insights - Application Insights - 计划分析
- java - 如何在一个语句中打印多个类实例?爪哇
- ios - 带有异步网络请求的Swift 2 For Loop在响应后继续循环