ModelAndView和ModelMap有什么区别?

时间:2010-07-27 14:26:08

标签: java spring spring-mvc

ModelMap只是ModelAndView弹簧3中的新名称吗?

Spring 3中的功能是否会发生变化?

使用ModelMap

在Spring 3应用中考虑此代码
 @RequestMapping(value = "/order", method = RequestMethod.GET)
 public final String setup(final ModelMap model)
 {
  model.addAttribute(ORDER, new Order());
  return "setup";
 }

我想知道ModelAndView在{Spring}应用程序中的等效用途是什么?是否只需要将名称从ModelMap更改为ModelAndView以使其在Spring 2.5中正常运行?

2 个答案:

答案 0 :(得分:23)

ModelAndView,顾名思义,包含模型,视图的名称。合同中的ModelMap仅包含有关模型的信息。

您的示例将被写为(在“旧”Spring中)为

 public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
 {
  return new ModelAndView("setup", ORDER, new Order());
 }

答案 1 :(得分:10)

@ coder247如果我错了,有人会纠正我,但你不需要返回ModelMap。将属性添加到ModelMap中,只需返回一个String,即View名称。

这是一篇很好的文章,解释了如何做到这一点以及更多...... http://www.mkyong.com/spring-mvc/spring-mvc-form-handling-annotation-example/