具有特殊字符'+'的RequestParam

时间:2016-11-02 14:31:20

标签: java rest spring-boot special-characters

在我的控制器中,我有requestMapping“searchUser”,带有4个请求参数。 对于请求参数“phoneNumber”,我也接受特殊字符,如'(',')',' - '和'+'。

预期字符'+'所有字符都显示在我的日志中。如果我发送例如“+123”或“123 + 1”这样的值,我会得到我的控制器“123”和“123 1” 它用空格替换“+”。

只有'+'

才会发生
reader.useDelimiter("[\\,\\n\\r]+");

你知道我要添加什么吗?

提前感谢!

更新:

我使用Angular 2作为我的前端,我有一个表单,然后将值发送到我的spring-boot后端。 我的http服务有角度:

dependency:purge-local-repository

2 个答案:

答案 0 :(得分:2)

好的,我解决了。

我把它编码在我的前面。没有其他选择。

params.set(' phoneNumber',encodeURIComponent(searchParams.phoneNumber));

感谢您的帮助!

答案 1 :(得分:0)

您只需在javascript端将“ +”的任何实例替换为“%2B”,然后再将其发送到服务器即可。

Reference here