2017-05-25 67 views
0

我的Spring REST控制器上有一個URL映射,它需要URL有三個可選的請求參數。我已經使用@RequestParam註釋來定義下面定義的方法中的三個可選參數。 當我使用瀏覽器來點擊相同的URL時,URL工作正常。將AngularJS的URL中的RequestParams傳遞給Spring MVC後端

問題是當我嘗試用我的AngularJS服務點擊相同的網址時。過去我一直使用PathVariables,但不知道如何將這些RequestParam變量傳遞到URL中。

角服務:

$resource(configuration.get('wsUrlPrefix') + 'abc/xyz/:page/:size/:sortData', {}, serviceConfig) 

的URL原來是這樣的:

http://localhost:8080/abc/xyz//10?sortdata=%7B%22orderType%22:null,%22oEDistrictNbr%22:null,%22orderNumber%22:null,%22mainLine%22:null%7D

和後端不能識別它。

回答

1

這是因爲您的sortdata參數是一個對象,例如像這樣:

{ 
    orderType: null, 
    eEDistrictNbr:null 
    .. 
} 

所以,當這個編碼它會成爲像你的問題(逃脫字符等)

一種方法來解決它,以確保您的參數總是字符串或數字,由將你的對象解構成簡單的基元,例如

$resource(configuration.get('wsUrlPrefix') + 'abc/xyz/:page/:size/:sortDataOrderType/:sortDataEDistricNr/...', {}, serviceConfig) 
+0

是的,謝謝。但爲了傳遞url參數,我使用了?符號名稱的結尾處。它工作感謝。 –