Dropwizard/Jersey使用筛选器更改查询参数

Dropwizard/Jersey使用筛选器更改查询参数,jersey,dropwizard,Jersey,Dropwizard,是否有方法使用jersey筛选器更改现有查询参数。我有客户这样传身份证 /v1/路径?id=1,2,3 我希望它们在我的资源类中显示为列表 //资源类 public List<Something> getFilteredList(@QueryParam("id") List<String> ids) {// 这是不变的 解决这个问题的好方法是什么?我能想到的最好方法就是为列表创建一个包装器类。这使得更容易利用Jersey的指定功能。你可以明白我的意思 比如说 publi

是否有方法使用jersey筛选器更改现有查询参数。我有客户这样传身份证

/v1/路径?id=1,2,3

我希望它们在我的资源类中显示为列表 //资源类

public List<Something> getFilteredList(@QueryParam("id") List<String> ids) {//
这是不变的


解决这个问题的好方法是什么?

我能想到的最好方法就是为列表创建一个包装器类。这使得更容易利用Jersey的指定功能。你可以明白我的意思

比如说

public class IdFilter {
    private List<String> ids = new ArrayList<>();
    public List<String> getIds() { return ids; }

    public static IdFilter valueOf(String param) {
        IdFilter filter = new IdFilter();
        for (String id: param.split(",") {
            filter.getIds().add(id);
        }
    }
}

getFilteredList(@QueryParam("id") IdFilter ids) {
公共类IdFilter{
私有列表ID=new ArrayList();
public List getIds(){return ids;}
公共静态IdFilter值(字符串参数){
IdFilter筛选器=新IdFilter();
对于(字符串id:param.split(“,”){
filter.getIds().add(id);
}
}
}
getFilteredList(@QueryParam(“id”)IdFilter id){
我们不需要做任何其他事情。只需拥有
静态值
就足以让Jersey知道如何解析查询字符串

public class IdFilter {
    private List<String> ids = new ArrayList<>();
    public List<String> getIds() { return ids; }

    public static IdFilter valueOf(String param) {
        IdFilter filter = new IdFilter();
        for (String id: param.split(",") {
            filter.getIds().add(id);
        }
    }
}

getFilteredList(@QueryParam("id") IdFilter ids) {