@DefaultValue列表

时间:2016-05-11 15:50:47

标签: java jax-rs

在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方式来实现同样的目标?

1 个答案:

答案 0 :(得分:1)

可能过于简单,但为列表传递多个默认值的可能方法如下:

public void dummy(@DefaultValue("foo,bar") String items) {
    List<String> parameters = Lists.newArrayList(Splitter.on(",").split(items));
    ....
}