2016-02-26 19 views
0

我正在將所有的Spring服務轉換爲澤西島,當我遇到一個關於如何轉換RequestParam的params功能的問題時春天到澤西島?在澤西島過濾類似於@RequestMapping的資源Spring的「Params」屬性

@RequestMapping(值= 「/收益」,PARAMS = 「類型= CSV」

春:

@RequestMapping(value = "/earnings", params = "type=csv") 
public void earningsCSV() {} 

@RequestMapping(value = "/earnings", params = "type=excel") 
public void earningsExcel() {} 

@RequestMapping("/earnings") 
public void earningsSimple() {} 

球衣號碼:

@Path("/earnings") 
public void earningsCSV() {} 

@Path("/earnings") 
public void earningsExcel() {} 

@RequestMapping("/earnings") 
public void earningsSimple() {} 

如何指定在澤西島輸入「csv/excel」? Jersey甚至支持基於Param的過濾請求嗎?

如果沒有,有什麼辦法可以實現這個目標嗎? 我正在考慮一個過濾器來處理它們並重新引導請求,但我有將近70多種服務需要這樣處理。 所以我必須最終爲它們寫一個過濾器。另外,它聽起來不像一個乾淨的方法。

任何建議,將不勝感激。 在此先感謝。

回答

0

澤西島沒有配置來定義這個,它在春季完成的方式。

我解決了這個問題,通過創建一個父服務來接受呼叫,並根據param重定向到相應的服務。

@Path("/earnings") 
public void earningsParent(@QueryParam("type") final String type) { 
    if("csv".equals(type)) 
     return earningsCSV(); 
    else if("excel".equals(type)) 
     return earningsExcel(); 
    else 
     return earningsSimple(); 
} 

public void earningsCSV() {} 

public void earningsExcel() {} 

public void earningsSimple() {} 

我覺得這種方式比過濾器並不需要開發商去改變未來的過濾器,如果需要延長更好。