0

Javaのパラメータとして配列をMapまたはカスタムクラスに渡す文字列を解析/アンマーシャルする方法はありますか?

URLの例:

localhost:8080 / app / ws / category?take = 10&skip = 10&page = 2&pageSize = 10&filter [logic] = and&filter [filters] [0] [field] = company_id&filter [filters] [0] [operator] = eq&filter [filters] [ 0][値]=1513

次のようなフィルターパラメーターを解析する必要があります。

public class Filter {

private String logic;
private List<Filters> filters;

public class Filters {
    private String field;
    private String operator;
    private String value;
    }
}

もう1つのポイント-ここではJerseyを使用していますが、Jerseyのツールを使用して@QueryParamを解析/アンマーシャルする可能性はありますか?

とにかく、他のJavaソリューションも問題ありません。

4

2 に答える 2

0

I would suggest 2 things :

Either you want to perform a GET, then to keep a RESTful approach, I would have an Url like : localhost:8080/app/ws/categories?take/10/skip/10/page/2/pageSize/10/filter/logic/and/ ...etc

Or POST is acceptable, and I would send JSON payload

于 2012-04-18T09:30:06.863 に答える
0

JAXRS2.0仕様の@BeanParamを利用して実行できます

public PageableResponse<PatientBundleType> getPatientBundles(@BeanParam final PageableBeanParam paging)
{
    ...
}

public class PageableBeanParam
{
    public PageableBeanParam(@Context final UriInfo uriInfo)
    {

        for (Entry<String, List<String>> param : params.entrySet())
        {
            String key = param.getKey();
            String value = param.getValue().iterator().next();

            if ("pageSize".equals(key))
            {
                setPageSize(Integer.valueOf(value));
            }

            ...
        }
    }
}
于 2014-06-26T17:16:50.383 に答える