2017-05-25 57 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参数,我使用了?符号名称的结尾处。它工作感谢。 –

相关问题