Spring MVC填充@RequestParam Map <String,String>

Chr*_*kis 5 data-binding parameters spring populate spring-boot

我的Spring MVC @Controller中有以下方法:

@RequestMapping(method = RequestMethod.GET)
public String testUrl(@RequestParam(value="test") Map<String, String> test) {   
    (...)
}
Run Code Online (Sandbox Code Playgroud)

我这样称呼它:

http://myUrl?test[A]=ABC&test[B]=DEF
Run Code Online (Sandbox Code Playgroud)

但是,“ test” RequestParam变量始终为null

为了填充“测试”变量,我必须做什么?

小智 5

如此处详细说明 https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestParam.html

如果方法参数是Map或MultiValueMap并且未指定参数名称,则将使用所有请求参数名称和值填充map参数。

因此,您将像这样更改定义。

@RequestMapping(method = RequestMethod.GET)
public String testUrl(@RequestParam Map<String, String> parameters) 
{   
  (...)
}
Run Code Online (Sandbox Code Playgroud)

并且在您的参数中,如果您调用了URL http:// myUrl?A = ABC&B = DEF

您将拥有自己的方法

parameters.get("A");
parameters.get("B");
Run Code Online (Sandbox Code Playgroud)