2014-07-03 89 views
6

我有一个复杂的html格式,用java脚本动态创建。如何在Spring MVC控制器中将表单数据作为Map获取?

我想要将键值对的映射作为Java中的Map并存储它们。

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

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

但我的地图是空的。

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

+1

加上'@ RequestParam'你的方法参数。 –

+0

我不知道param的名字是什么!我在下面发现了一个解决方案。 –

+0

您不需要参数名称只是注释。类型映射中的'@ RequestParam'将为您提供所有请求参数。 –

回答

12

您还可以使用@RequestBodyMultiValueMap 例如

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

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

MultiValueMap是在春季utils包

+0

这是一个更好的解决方案,我相信:) –

+0

我得到“内容类型不支持”的问题 – Ram

5

我,刚才已经找到了解决办法

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

这样,我有地图提交的参数。

相关问题