如何在Spring MVC控制器中获取表单数据作为地图?

2022-09-01 11:33:15

我有一个复杂的html表单,它是用java脚本动态创建的。

我想在java中获取键值对的映射作为Map并存储它们。

这是我的控制器来获取提交的数据。

@RequestMapping(value="/create", method=RequestMethod.POST, 
    consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public String createRole(Hashmap<String, Object) keyVals) {
    ....
}  

但我的地图是空的。

如何在Spring mvc控制器中将表单数据作为名称 - 值对的映射?


答案 1

您还可以将@RequestBody多值地图一起使用,例如

@RequestMapping(value="/create",
                method=RequestMethod.POST,
                consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public String createRole(@RequestBody MultiValueMap<String, String> formData){
 // your code goes here
}

现在,您可以获取参数名称及其值。

MultiValueMap在Spring utils包中


答案 2

我,刚刚找到了解决方案

@RequestMapping(value="/create", method=RequestMethod.POST, 
        consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public String createRole(HttpServletRequest request) {
    Map<String, String[]> parameterMap = request.getParameterMap();
    ...
}

这样我就有了一个提交参数的地图。


推荐