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);
答案 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());