2014-07-03 35 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(); 
    ... 
} 

這樣,我有地圖提交的參數。

相關問題