我正在使用$ resource调用Web api(例如J2ee:/ getBlDetail / {noBl}):
return $resource('api/getBlDetail/:noBl', {}, {
'query': { method: 'GET', isArray: true},
'get': {
method: 'GET', isArray: true,
transformResponse: function (data) {
data = angular.fromJson(data);
return data;
}
}
});
J2EE:
@RequestMapping(value = "/getBlDetail/{noBl}",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
@Timed
public List<Vente> getBlDetail(@PathVariable String noBl) {
try {
noBl = java.net.URLDecoder.decode(noBl, "UTF-8");
...
return ventes;
} catch (UnsupportedEncodingException e) {
return null;
}
}
例如,如果noBl = '04 .00256',在Java端,我只会得到'04'。
似乎是“。”字符不被接受。
我试过了:encodeURIComponent(bl.noBl)
但是问题是一样的。
有没有办法在$ resource中使用包含“。”的参数。字符?
提前致谢。
最佳答案
您需要不同地指定URL,如下所示:
/somepath/{variable:.+}
这个问题的进一步解释:
Spring MVC @PathVariable with dot (.) is getting truncated