Dojo グリッドは、次のように REST Web サービスにリクエストを発行することでソートを実装します。
GET http://server/request?sort(+id)
sort(+id)
方向 (+/-) とソートする列はどこにありますか。
現在、私はこれを行っており、動作しますが、醜いです:
@GET
@Path("request/")
@Produces(MediaType.APPLICATION_JSON)
public Collection<RequestDataWithCurrentStatus> getAllRequests() {
Collection<RequestDataWithCurrentStatus> col = new ArrayList<RequestDataWithCurrentStatus>();
....
//handle the various types of sorting that can be requested by the dojo widget
String queryString = this.request.getQueryString();
//parse the dojo sort string 'sort(+id)' and sort
...
return col;
}
このメソッドは、挿入された RESTEasy を使用@Context private HttpServletRequest request
して生のクエリ文字列にアクセスします。
呼び出し@*Param
で、このクエリ文字列を RESTEasy の注釈の 1 つにマップできるはずだと思います。しかし、RESTEasy のドキュメントgetAllRequests()
によると、ドキュメントからの厄介な dojo クエリ文字列への適切なマッピングはないようです。私はこのようなことをしたい:
@GET
@Path("request/")
@Produces(MediaType.APPLICATION_JSON)
public Collection<RequestDataWithCurrentStatus> getAllRequests( @DojoQueryParam String sort) {
...
}
Dojo グリッドのクエリ文字列を RESTEasy Web サービス メソッドに正しい方法でマーシャリングするにはどうすればよいですか?