Spring MVC @RequestParam值未按预期从URI中提取

rev*_*evo 8 java spring spring-mvc

我想知道spring如何分割http请求的每个参数.通过示例我有这个方法定义:

@RequestMapping(value = "/search.do", method = RequestMethod.GET)
public String searchGet(ModelMap model,
    @RequestParam(value = "memberId", required = false) Integer memberId,
    @RequestParam(value = "member", required = false) String member) {...}
Run Code Online (Sandbox Code Playgroud)

我用这个网址:

/search.do?member=T&O=
Run Code Online (Sandbox Code Playgroud)

我得到成员= T而不是成员= T&O =

请求参数仅限于memberId和member.我可以配置弹簧来解决这个问题吗?

a b*_*ver 11

URL中的某些字符具有特殊含义.如果他们应该是价值的一部分,他们需要逃脱.

如果您的值是T&O =则需要将其更改为T%26O%3D


xyz*_*xyz 4

&用于分隔请求参数。
URL 包含以下格式的请求参数名称和值

http://host_port_and_url?name1=value1&name2=value2&so_on

在你的情况下

/search.do?member=T&O=  
Run Code Online (Sandbox Code Playgroud)

名称 -> 值
成员 -> T
O -> (无值 - 空白)
因此您得到了正确的值