【问题标题】:What's the difference between ModelAndView and ModelMap? [duplicate]ModelAndView 和 ModelMap 有什么区别? [复制]
【发布时间】:2010-07-27 14:26:08
【问题描述】:

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

Spring 3 中的功能有变化吗?

考虑在 Spring 3 应用程序中使用 ModelMap 的这段代码:

 @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 中正常工作?

【问题讨论】:

    标签: java spring spring-mvc


    【解决方案1】:

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

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

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

    【讨论】:

    • 关于新春3:如果我只返回ModelMap,那么视图如何返回?新手在这里...
    • @Abhijeet:Spring 将从请求 URI 中推断出视图名称。
    • 如果我想明确指定视图名称?这样我就可以对不同的请求使用同一个控制器。
    • 模型 m 怎么样?
    【解决方案2】:

    @coder247 如果我错了,请有人纠正我,但您不需要返回 ModelMap。将您的属性添加到您的 ModelMap 并简单地返回一个作为视图名称的字符串。

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

    【讨论】:

    • +1 用于指出 “你不需要返回 ModelMap”
    猜你喜欢
    • 2013-08-31
    • 1970-01-01
    • 2014-04-01
    • 2015-11-23
    • 2013-02-13
    • 2011-04-26
    • 2016-09-24
    • 1970-01-01
    相关资源
    最近更新 更多