SpringMVC:包含加号(+)字符的@PathVariable值

时间:2014-02-12 15:37:00

标签: java spring-mvc

我在SpringMVC控制器中遇到@PathVariable问题。每当我传递包含加号('+')的字符串时,plus会被空格替换。编码参数没有帮助。

例如,如果我请求url myapp/resend-validation/my+mail@gmail.com,我会在email变量中获得“my mail@gmail.com”。请求myapp/resend-validation/my%2Bmail@gmail.com

后也会发生同样的情况

我的控制器看起来像这样:

@RequestMapping(value = "/resend-validation/{email:.+}")
public String resendValidation(@PathVariable String email, HttpServletRequest request, Model model) { 
    //controller code here
}

(@ RequestMapping值中的常规表达式是因为电子邮件地址中的点,否则,值会在点之后被截断。它不会影响我的问题)

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

傻傻的我!在完全不同的部分是错误的。我正在使用Ajax调用控制器,并且涉及一些javascript处理,并且存在错误 - 它将'plus'替换为'space'而不是调用服务器。感谢大家的时间。