在JAX-RS中,我可以定义一个查询参数来填充列表:
@GET
@Path("/foo")
public String myService(
@DefaultValue("default") @QueryParam("p") List<String> items
) {
return items.toString();
}
对于.../foo?p=1&p=2
之类的请求,项目为["1","2"]
。
@DefaultValue
设置默认值,但这始终会创建一个包含该默认值的单个条目的集合:对于.../foo
之类的请求,项目为["default"]
。
我想要一个包含两个条目的默认值。一种不起作用的幻想方法是:
@DefaultValue("foo","bar") List<String> items
我所使用的工作代码省略了DefaultValue,而是具有:
if(items.isEmpty()) {
items = asList("foo","bar");
}
是否有一种干净的JAX-RS方式来实现同样的目标?
答案 0 :(得分:1)
可能过于简单,但为列表传递多个默认值的可能方法如下:
public void dummy(@DefaultValue("foo,bar") String items) {
List<String> parameters = Lists.newArrayList(Splitter.on(",").split(items));
....
}