Resteasy如何更新/添加查询参数?

时间:2018-08-03 11:50:25

标签: java jboss jax-rs resteasy

resteasy的旧版本[ 3.0.7 ]中,我们能够更新查询参数

requestContext.getUriInfo().getQueryParameters()
                        .add("limit", recordLimit);

但是在使用版本[ 3.5.1 ]更新后,以上代码将为UnmodifiableMultivaluedMap

引发错误

然后尝试编写这段代码

UriBuilder  uriBuilder = requestContext.getUriInfo().getRequestUriBuilder();
uriBuilder.queryParam("limit", recordLimit);

以及以下代码

UriBuilder  uriBuilder = requestContext.getUriInfo().getRequestUriBuilder();
uriBuilder.matrixParam("limit", recordLimit);

有人可以解释一下更新查询参数的正确方法是什么吗?

编辑1 :即使这样也行不通

UriBuilder  uriBuilder = requestContext.getUriInfo().getRequestUriBuilder();
uriBuilder.replaceQueryParam( "limit", recordLimit);

1 个答案:

答案 0 :(得分:1)

最后我找到了解决方案,在旧版本中,我们正在做类似的事情以动态添加查询参数

requestContext.getUriInfo().getQueryParameters()
                        .add("limit", recordLimit);

但是在3.5.1版本中,它是一个MultiMap,因此上述情况不允许这样做,因此这是实现这一目标的新方法

UriBuilder  uriBuilder = requestContext.getUriInfo().getRequestUriBuilder() ;
uriBuilder.queryParam("limit", recordLimit);
requestContext.setRequestUri(uriBuilder.build());