2013-12-20 50 views
0

Dojo Toolkit使用JsonRest store通過REST調用與您的服務器進行通信。在dGrid中,列標題可排序。點擊列時,會有一個調用服務器的排序細節。我不知道如何處理這些調用,以便在我的Java代碼中進行排序。使用Jax-RS(Jersey 1.13),我該如何構建一個匹配並響應下面顯示的排序查詢字符串的寧靜方法?如何使用JaxRS Rest來響應簡單的排序查詢?

例如,通過在該HTTP請求中的「ID」欄結果排序:

/rest/Subcategory/?sort(-subcatId) 

我不清楚如何使用此語法以提取排序查詢字符串值。我試過@QueryParam("sort")並失敗。我目前正在搜索Java中的排序示例。我也在尋找Restful Services的編碼約定。

+0

我能解決我的問題與此[SO問題](http://stackoverflow.com/a/9612720/1653234)。 – medokr

回答

0

如果您的網址是這樣的: -

/rest/Subcategory/?sort=subCatID 

@QueryParam("sort")應該工作。我還沒有和澤西合作太多,但在CXF中也使用過很多次,這也是另一個JAX-RS規範的實現。

CXF的頁面http://cxf.apache.org/docs/jax-rs-basics.html很好地解釋了Jaxrs的基本知識。希望這可以幫助。

+0

我以爲但是,Dojo Framework使用上面顯示的格式:'sort(-subcatId)'或'sort(+ subcatId)'。 – medokr

0

,你可以注入@ServletRequest爲你的資源方法的參數,然後檢索查詢字符串:

@GET 
public Response getSubCategory(@Context HttpRequestServlet request) { 
    ... 
    request.getQueryString(); 
    ... 
} 
0

爲了得到道場將它發送的查詢參數(即排序= + someValue中或排序= -someValue確保您設置

"Content-Type":"application/json" 
"charset":"UTF-8" 

var TrackableRest = declare([Rest, Trackable]); 
    var interceptStore = new TrackableRest({ 
     target: 'rest/intercepts/', 
     accepts: "application/json", 
     sortParam: 'sort',   
     rangeStartParam: 'offset', 
     rangeCountParam: 'limit', 
     headers:{ 
      'Accept': "application/json", 
      'Content-Type':"application/json", 
      'charset':"UTF-8"    
     }, 
     idProperty: 'id' 
    });