如何在Spring MVC中的ModelMap中设置所有发布数据?

时间:2011-09-27 09:34:15

标签: spring-mvc

我在表单中有许多输入字段,用于将数据发布到服务器端。 在控制器中,我想在ModelMap中获取所有属性:

public String save(ModelMap model) {
    ....
}

我不想使用@RequestParam,因为要发送的字段太多了。我认为表单中的数据会自动发布并保存在ModelMap中,但它不起作用

有人能帮帮我吗? 感谢。

2 个答案:

答案 0 :(得分:2)

您应该在表单处理程序

中使用@ModelAttribute
@RequestMapping(value="/submitform", method = RequestMethod.POST)
public String save(@ModelAttribute("mydata") MyData myData) {

 //do something with
 //myData.getField1();
 //myData.getFiled2();
}

这就是您将页面发送到表单的方式

@RequestMapping("/fillform")
public String loadForm(ModelMap model) {

  //you could also fill MyData, to do autofill on the html form
  model.put("mydata", new MyData());

  return "fillform"; //[jsp]view resolver will pick up fillform.jsp 
 }

答案 1 :(得分:0)

我正在尝试做同样的事情。之前的答案存在的问题是,通过迭代Map<String, Object>来动态构建UI。 因此无法预先定义MyData.class。

我正在使用下一种方法解决这个问题:

@RequestMapping(value = "/secure/filled", method = RequestMethod.POST) public String saveFilledData(HttpServletRequest request, ModelMap model) { request.getParameter("nameOfTheParameter"); }