具有多个同名参数的JAX-RS查询

时间:2017-02-22 16:29:52

标签: java web-services rest jersey jax-rs

我想创建一个Web服务,您可以在其中查询通用数据。所以,我的网址将是这样的:

... / FIELD_NAME /国家/ FIELD_VALUE / US / FIELD_NAME /市/ FIELD_VALUE /波士顿

用Jersey读取它的方法是什么 - 我想获得一个字段名称数组和相应的字段值数组。

2 个答案:

答案 0 :(得分:3)

这似乎更适合查询参数而不是上面的url参数。

您的网址将类似于:

/query?Country=US&City=Boston&City=Chicago

JAX-RS支持多个同名查询参数,方法是将它们映射到端点中的Collection,如下所示:

@GET
@Path("/query")
public String queryValues(@QueryParam("Country") List<String> countries,
                          @QueryParam("City") List<String> cities) {
   // Do work here
}

如果查询参数是完全动态的,并且您在运行时之前不知道它们是什么,那么您可以注入UriInfo对象并自己查询查询字符串。

@GET
@Path("/query")
public String queryValues(@Context UriInfo uriInfo) {
   // Do work here
}

答案 1 :(得分:0)

关于您的查询,您也可以使用以下逗号分隔的格式:

/query?Country=US&City=Boston,Chicago