我正在使用$ 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

07-25 22:51