【问题标题】:Pass key-value list via JAX-RS param通过 JAX-RS 参数传递键值列表
【发布时间】:2012-07-19 21:18:44
【问题描述】:

我已经定义了如下描述的 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 传递给此方法?

【问题讨论】:

  • 必须是 GET 吗? A 看起来像 POST 或 PUT 会更合适,它是否存储 id=value 的列表?
  • 它现在可以作为GET使用,但是我可以将它转换为POST

标签: java jax-rs


【解决方案1】:

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

方法/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 body,在这种情况下你不能使用GET,你应该创建一个ValuesMapObject,它保存每个id到它的值之间的映射并从客户端发送它,在这种情况下函数将如下所示:

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-07-25
  • 2016-05-05
  • 1970-01-01
  • 2011-05-13
  • 2021-03-15
  • 2013-10-18
  • 1970-01-01
  • 2015-12-09
相关资源
最近更新 更多