Resteasy如何查询update/add参数?
Resteasy how to update/add query parameter?
在 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);
最后我找到了解决方案,在旧版本中我们正在做类似的事情来动态添加查询参数
requestContext.getUriInfo().getQueryParameters()
.add("limit", recordLimit);
但在 3.5.1 版本中它是一个 MultiMap,所以上面的场景不允许,所以这里是实现这个的新方法
UriBuilder uriBuilder = requestContext.getUriInfo().getRequestUriBuilder() ;
uriBuilder.queryParam("limit", recordLimit);
requestContext.setRequestUri(uriBuilder.build());
在 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);
最后我找到了解决方案,在旧版本中我们正在做类似的事情来动态添加查询参数
requestContext.getUriInfo().getQueryParameters()
.add("limit", recordLimit);
但在 3.5.1 版本中它是一个 MultiMap,所以上面的场景不允许,所以这里是实现这个的新方法
UriBuilder uriBuilder = requestContext.getUriInfo().getRequestUriBuilder() ;
uriBuilder.queryParam("limit", recordLimit);
requestContext.setRequestUri(uriBuilder.build());