如何在 RestEasy 中支持逗号分隔的列表查询参数

How to support comma separated list queryParam in RestEasy

在 RestEasy 中使用列表作为 QueryParam 时,(@QueryParam 列表字符串), 以下 url 工作正常 - ?字符串=123&字符串=456 这行得通,您会得到包含 2 个值的列表。

但是当你按如下方式传递值时 - ?字符串= 123,456 它给出“123,456”作为单个值,这不是预期的行为。

如何获取 strings=123,456 作为 123 和 456 的列表。

一个选项是为 Set 创建 Provider class 并修改 fromString 和 toString 方法,在此 strings=123,456 开始工作后,它给出包含两个元素 123 和 456 的列表,但 strings=123&strings= 456 现在不工作,它给出的列表只有一个元素 123.

让我知道如何在 RestEasy QueryParam 中获得这两种行为。

我通过实施 ContainerRequestFilter 解决了这个问题,并在过滤器方法中更新了实际的 URL 并将其设置回 requestContext。 例如原文 URl - http://localhost:8080/api?tags=123,456

已更新 Url - http://localhost:8080/api?tags=123&tags=456