休息 – QueryParam绑定与泽西的枚举

我有一个休息的URL这样的http://www.localhost.com/service/resource?status=ACTIVE,PASSIVE,我有一个这样的方法

@GET
public Resource resource(@QueryParam("status") Collection<STATUS> statusList){
}

其中STATUS是一个枚举?

public enum STATUS{
    ACTIVE,PASSIVE,DISABLED
}

我的问题是有一种方法可以让查询param状态自动转换为运动衫中的枚举类型STATUS,或者我必须为此写自己的提供者?

JSR 311 API开始,@QueryParam注释类型必须:

>成为原始类型
有一个构造函数接受一个String参数
>有一个名为valueOf或fromString的静态方法,它接受一个String参数(例如,参见Integer.valueOf(String))
>列表< T>,< T>或SortedSet T,其中T满足上述2或3。生成的集合是只读的。

对于您的情况,我将使用第二个选项将枚举包装在一个简单的类中:

public class StatusList {
  private List<STATUS> statusList;

  public StatusList(String toParse) {
    //code to split the parameter into a list of statuses 
  }

  public List<STATUS> getStatusList() {
    return this.statusList;
  }
}

然后将您的方法更改为:

@GET
public Resource resource(@QueryParam("status") StatusList statusList){
}
http://stackoverflow.com/questions/11530653/queryparam-binding-with-enum-in-jersey

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:休息 – QueryParam绑定与泽西的枚举