0

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 サービス メソッドに正しい方法でマーシャリングするにはどうすればよいですか?

4

1 に答える 1

0

古いストア/dojox グリッドの経験はほとんどありませんが、dojo/store/JsonRest を使用している場合: ソート パラメータの送信方法を変更できますsortParam。リファレンスガイドから恥知らずにひっかかった:

var store = new JsonRest({
  target: "/FooObject/",
  sortParam: "sortBy"
});

これにより、フォームでリクエストが作成されます/foo/bar?sortBy=+id

http://dojotoolkit.org/reference-guide/1.8/dojo/store/JsonRest.html#sorting

于 2012-12-12T21:03:12.443 に答える