Angularjs:如何传递“。”将字符转换为$ resource的参数

时间:2015-05-23 14:05:23

标签: java javascript angularjs rest

我使用$ 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中使用包含“。”的参数。字符?

提前致谢。

1 个答案:

答案 0 :(得分:2)

您需要以不同方式指定URL,如下所示:

/ somepath / {变量:+}

此问题的进一步解释: Spring MVC @PathVariable with dot (.) is getting truncated