如何在Spring MVC中将多维数组作为@RequestParam处理?

时间:2016-12-10 15:59:45

标签: java arrays spring spring-mvc

所以,基本上,我有一个发送以下输入的表单:

<form>
  <input type="text" name="days[monday][start]" value="1">
  <input type="text" name="days[monday][end]" value="2">
  <input type="text" name="days[tuesday][start]" value="1">
  <input type="text" name="days[tuesday][end]" value="2">
</form>

如何在Spring MVC中以@RequestParam处理它?<​​/ p>

到目前为止,我试过

@RequestParam(value= "days", required = true) Map<String, Object>[] days
......
@RequestParam(value= "days", required = true) Map<String, Map<String, Object>> days
... or even ...
request.getParameter("days");

但没有成功。

2 个答案:

答案 0 :(得分:1)

您需要将其包装在一个自定义对象中,该对象将保存Map对象。然后,您必须更改表单的提交和初始化。

public class CustomWrapper{

    private Map<String, Object> customMap= new HashMap<String, Object>();

    public Map<String, Object> getCustomMap() {
        return customMap;
    }

    public void setCustomMap(Map<String, Object> customMap) {
        this.customMap = customMap;
    }

}

@RequestParam("days") CustomWrapper days

更多信息here

答案 1 :(得分:1)

尝试以下内容:

@RequestMapping(value="/test", method = RequestMethod.POST)
public void method(@RequestParam(value = "param[][]") String[][] paramValues)
{
    // rest of your code
}