76

以下Spring Framework类之间的主要区别是什么?

  • Model
  • ModelMap
  • ModelAndView

使用Model.put(String,Object)我们可以访问.jsp文件中的值,但ModelMap.addAttribute(String,Object)也做了同样的事情。我不明白这些类之间的区别。

4

3 回答 3

77

Model是一个接口,ModelMap而是一个类。

ModelAndView只是 aModelMap和 view 对象的容器。它允许控制器将两者都作为单个值返回。

于 2013-08-28T12:02:37.263 回答
35

Model、ModelMap、ModelAndView的区别

模型:它是一个接口。它定义了模型属性的持有者,主要用于向模型添加属性。

例子:

@RequestMapping(method = RequestMethod.GET)
    public String printHello(Model model) {
          model.addAttribute("message", "Hello World!!");
          return "hello";
       }

ModelMap:在构建模型数据以供 UI 工具使用时使用的 Map 实现。支持链式调用和模型属性名称的生成。

例子:

@RequestMapping("/helloworld")
public String hello(ModelMap map) {
    String helloWorldMessage = "Hello world!";
    String welcomeMessage = "Welcome!";
    map.addAttribute("helloMessage", helloWorldMessage);
    map.addAttribute("welcomeMessage", welcomeMessage);
    return "hello";
}

ModelAndView:这个类只是为了让控制器可以在一个返回值中返回模型和视图。

例子:

@RequestMapping("/welcome")
public ModelAndView helloWorld() {
        String message = "Hello World!";
        return new ModelAndView("welcome", "message", message);
    }
于 2017-06-30T06:38:19.103 回答
14

Model : 是一个接口,它包含四个 addAttribute 和一个 merAttribute 方法。

ModelMap:实现 Map 接口。它还包含 Map 方法。

ModelAndView:正如 Bart 解释的那样,它允许控制器将两者都作为单个值返回。

于 2015-02-24T10:59:44.110 回答