将参数映射为 Spring REST 控制器中的 GET 参数
Map parameter as GET param in Spring REST controller
如何在 url 中将 Map 参数作为 GET 参数传递给 Spring REST 控制器?
有不同的方法(但简单的 @RequestParam('myMap')Map<String,String>
不起作用 - 可能不再正确了!)
(恕我直言)最简单的解决方案是使用命令对象,然后您可以在 url 中使用 [key]
来指定映射键:
@控制器
@RequestMapping("/demo")
public class DemoController {
public static class Command{
private Map<String, String> myMap;
public Map<String, String> getMyMap() {return myMap;}
public void setMyMap(Map<String, String> myMap) {this.myMap = myMap;}
@Override
public String toString() {
return "Command [myMap=" + myMap + "]";
}
}
@RequestMapping(method=RequestMethod.GET)
public ModelAndView helloWorld(Command command) {
System.out.println(command);
return null;
}
}
- 请求:http://localhost:8080/demo?myMap[line1]=hello&myMap[line2]=world
- 输出:
Command [myMap={line1=hello, line2=world}]
使用 Spring Boot 1.2.7
测试
只需在注解后添加一个Map对象,即可将所有请求参数绑定在一个Map中:
@RequestMapping("/demo")
public String example(@RequestParam Map<String, String> map){
String apple = map.get("APPLE");//apple
String banana = map.get("BANANA");//banana
return apple + banana;
}
要求
/demo?APPLE=apple&BANANA=banana
来源 -- https://reversecoding.net/spring-mvc-requestparam-binding-request-parameters/
如何在 url 中将 Map 参数作为 GET 参数传递给 Spring REST 控制器?
有不同的方法(但简单的 @RequestParam('myMap')Map<String,String>
不起作用 - 可能不再正确了!)
(恕我直言)最简单的解决方案是使用命令对象,然后您可以在 url 中使用 [key]
来指定映射键:
@控制器
@RequestMapping("/demo")
public class DemoController {
public static class Command{
private Map<String, String> myMap;
public Map<String, String> getMyMap() {return myMap;}
public void setMyMap(Map<String, String> myMap) {this.myMap = myMap;}
@Override
public String toString() {
return "Command [myMap=" + myMap + "]";
}
}
@RequestMapping(method=RequestMethod.GET)
public ModelAndView helloWorld(Command command) {
System.out.println(command);
return null;
}
}
- 请求:http://localhost:8080/demo?myMap[line1]=hello&myMap[line2]=world
- 输出:
Command [myMap={line1=hello, line2=world}]
使用 Spring Boot 1.2.7
测试只需在注解后添加一个Map对象,即可将所有请求参数绑定在一个Map中:
@RequestMapping("/demo")
public String example(@RequestParam Map<String, String> map){
String apple = map.get("APPLE");//apple
String banana = map.get("BANANA");//banana
return apple + banana;
}
要求
/demo?APPLE=apple&BANANA=banana
来源 -- https://reversecoding.net/spring-mvc-requestparam-binding-request-parameters/