通过JAX-RS参数传递键值列表

时间:2012-07-19 13:08:55

标签: java jax-rs

我已经定义了GET方法,如下所述:

@GET
@Produces("text/plain")
@Path("method/{id}/{value}")
public void method(@PathParam("ids") final String id, @PathParam("value") final String value) {}

它允许我传递一个idvalue。如何将一堆id/value对传递给此方法?

1 个答案:

答案 0 :(得分:3)

一种方法是创建自己的协议,如下所示:

  

方法/ 1,2,3,4,5,6,7 /一个,两个,三个,四个,五个,六个,七个

然后,在你的代码中解析“协议”:

public void method(@PathParam("ids") final String idStr, @PathParam("value") final String valueStr) {
    String[] ids = idStr.split(",");
    String[] values = valueStr.split(",");
}

但它非常难看

第二个是使用POST主体,在这种情况下你不能使用GET,你应该创建一个ValuesMapObject,它在每个id到它的值之间保存一个映射并从客户端发送它,在这种情况下功能将如下所示:

@POST
@Produces("text/plain")
@Consumes(MediaType.APPLICATION_XML)
@Path("method/ids_and_values")
public void method(ValuesMapObject values) {}