java - 按 /1;2;3;4;5 顺序读取参数列表
问题描述
example.com/1;2;3;4;5
是否可以按照 URL 提供的顺序读取参数列表?
我目前不工作的方法是:
public Response(@PathParam("list") PathSegment list) {
Set<String> listParams = list.getMatrixParameters().keySet();
List<String> listList = new ArrayList<>(list.size() + 1);
listList.add(list.getPath());
for (String param : list) {
listList.add(param);
}
}
它确实适用于1;2;3;4;5
,但它不适用于1;5;4;3;2
。在这两种情况下,输出都是1;2;3;4;5
. matrixParameters
似乎按字母顺序排序,而不是按输入顺序排序。只需将整个参数作为字符串读取并手动解析就可以了,但也找不到这样做的方法。
解决方案
请仔细查看PathSegment 文档。矩阵参数存储在MultivaluedMap中。它唯一的实现是MultivaluedHashMap。它不保留元素的顺序。
我已经快速检查了如何在 JAX-RS 中获取原始请求参数。似乎没有纯粹的 JAX-RS 方式。您可以尝试使用此问题中的原始 HttpServletRequest 对象来获取信息。
推荐阅读
- javascript - 内容选项卡 - 滚动到 div 内容
- python - 是否可以使用 Keras 的 .fit_generator() 来训练和预测用于对象检测的边界框?
- artifactory - 如何通过 REST API 删除本地 Artifactory 存储库的所有内容?
- html - 图像未加载到画布中
- css - SassError:媒体查询表达式必须以“(”开头
- swiftui - SWIFTUI - Catalyst 应用程序 - 如何设置文档类型以显示文件图标
- python - 如何调整已创建的 Python matplotlib.pyplot.figure 的大小
- azure - Power BI - 连接到 Azure DevOps 分析服务的数据刷新错误 - 导入 VSTS.AnalyticsViews 不匹配导出
- asp.net-mvc - 如何在 .net 核心中的视图页面之间共享 @functions?
- java - 有没有办法以指数格式显示数字