我对 SpringMVC Controller 中的 @PathVariable 有疑问。每当我传递包含加号('+')的字符串时,加号就会被空格替换。对参数进行编码没有帮助。
例如,如果我请求 url myapp/resend-validation/my+mail@gmail.com,我会在我的 email
变量中得到“my mail@gmail.com”。在请求 myapp/resend-validation/my%2Bmail@gmail.com
我的 Controller 看起来像这样:
@RequestMapping(value = "/resend-validation/{email:.+}")
public String resendValidation(@PathVariable String email, HttpServletRequest request, Model model) {
//controller code here
}
(@RequestMapping 值中的正则表达式是因为电子邮件地址中的点,否则,值在点后被截断。这不会影响我的问题)
在此先感谢您的帮助。
请您参考如下方法:
傻我!这是完全不同部分的错误。我正在使用 Ajax 调用 Controller 并涉及一些 javascript 处理并且存在错误 - 它用“空格”替换“加号”然后调用服务器。感谢大家的时间。