按顺序读取参数列表 /1;2;3;4;5

Read a list of parameters in order /1;2;3;4;5

是否可以按照 URL 提供的相同顺序读取像 example.com/1;2;3;4;5 这样的参数列表?

我目前无效的方法是:

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;5matrixParameters 似乎是按字母顺序排序的,而不是按输入顺序排序的。将整个参数作为字符串读取并手动解析就可以了,但也找不到这样做的方法。

请仔细看PathSegment documentation矩阵参数存储在MultivaluedMap. Its only implementation is MultivaluedHashMap中。它不保留元素的顺序。

我快速检查了如何在 JAX-RS 中获取原始请求参数。似乎没有纯粹的 JAX-RS 方式。您可以尝试使用 this question 中的原始 HttpServletRequest 对象来获取信息。