##Model、ModelMap、ModelAndView的作用及区别
对于MVC框架,控制器controller执行业务逻辑
用于产生模型数据Model
视图view用来渲染模型数据

Model和ModelAndView这两个类在spring的视图解析时作用及区别

1、Model是用来传输数据的,不会进行业务的寻址

2、ModelAndView可以进行业务寻址(就是设置对应的要请求的静态文件,静态文件类似于jsp文件)

最大的区别:Model每一次请求可以自动创建,ModelAndView是需要我们自己去new的

Model方法

如果在控制层上的方法声明了注解@ResponseBody,则会直接将返回值输出到页面,Model是一个接口,实现类为ExtendModelMap,继承了ModelMap类。

public class ExtendModelMap extends ModelMap implements Model

model可以用来接收各种类型的数据,如果用来接收一组数据list,那么这个时候的model实际上是ModelMap

ModelMap方法

ModelMap对象主要用于传递控制方法处理数据到结果页面(也就是把结果页面上需要的数据放到ModelMap对象中就可以了)

作用类似于request对象的setAttribute方法的作用:在一个请求过程中传递处理的数据

ModelMap本身不能设置页面跳转的URL地址名或者物理跳转地址,此时可以通过控制器方法的字符串返回值来设置跳转URL地址别名或者物理跳转地址

ModelAndView方法

添加模型数据用addObject;

设置视图setViewName;

ModelAndView 对象有两个作用:

(1)设置转向地址,这也是ModelAndView和ModelMap的主要区别.设置方式如下所示:

ModelAndView view = new ModelAndView("path:student");

或者通过setViewName方式:

public void setViewName(String viewName){...}

(2)将控制器方法中处理的结果数据传递到结果页面(也就是把在结果页面上需要的数据放到ModelAndView对象中即可)

其作用类似于request对象的setAttribute方法的作用,用来在一个请求过程中传递处理的数据。通过以下方法向页面传递参数:

public ModelAndView addObject(String attributeName, Object attributeValue){...}
public ModelAndView addObject(Object attributeValue){...}

在jsp中:也是可以通过el表达式语言attributeName或者C标签库的{name } 来获取并展示ModelAndView中的数据。

ModelAndView的实例是需要我们手动new的,这也是和ModelMap的一个区别。

而且,ModelAndView 可以自己寻址,只需要return 返回其对象即可。

记住有一个需要返回对象,一个需要返回的是地址路径。

Model、ModelMap、ModelAndView的作用及区别的更多相关文章

  1. Model ModelMap ModelAndView

    前言 Spring MVC在调用方法前会创建一个隐含的模型对象作为模型数据的存储容器. 如果方法的入参为ModelMap,Model,Map类型,Spring MVC会将隐含模型的引用传递给这些入参. ...

  2. Model & ModelMap & ModelAndView 比较ModelFactory简介

    Model: 是一个接口,其实现类必继承ModelMap. ModelMap: 继承与LinkedHashMap,相当于自定义了一个map. ModelAndView: 里面封装了两个对象,其中vie ...

  3. springboot中model,modelandview,modelmap的区别与联系

    springboot 中Model,ModelAndView,ModelMap的区别与联系 Model是一个接口,它的实现类为ExtendedModelMap,继承ModelMap类 public c ...

  4. springMVC Model ModelMap 和 ModelAndView的区别(转)

    原文地址:springMVC Model ModelMap 和 ModelAndView的区别 近来在看代码,发现controller里有不同的处理返回数据的方式,而自己一直在用ModelAndVie ...

  5. Spring中Model,ModelMap以及ModelAndView之间的区别

    原文链接:http://blog.csdn.net/zhangxing52077/article/details/75193948 Spring中Model,ModelMap以及ModelAndVie ...

  6. Model/ModelMap 和 ModelAndView 的区别使用

    Model/ModelMap 和 ModelAndView 的区别使用 Model/ModelMap controller: package springmvc.controller; import ...

  7. Model、ModelMap、ModelAndView的使用和区别

    1.Model的使用 数据传递:Model是通过addAttribute方法向页面传递数据的: 数据获取:JSP页面可以通过el表达式或C标签库的方法获取数据: return:return返回的是指定 ...

  8. ModelMap和ModelAndView的作用

    首先介绍ModelMap和ModelAndView的作用 ModelMap ModelMap 对象主要用于传递控制方法处理数据到结果页面,也就是说我们把结果页面上需要的数据放到ModelMap对象中即 ...

  9. SpringMVC Map Model ModelMap 和 ModelAndView

    代码: package com.gaussic.controller; import com.gaussic.model.AccountModel; import org.springframewor ...

随机推荐

  1. python 代码编写规范

    一 代码编排1 缩进.4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格.2 每行最大长度79,换行可以使用反斜杠,最好使用圆括号.换行点要在操作符的后边敲回车.3 类 ...

  2. whoami---打印当前有效的用户名称

    whoami命令用于打印当前有效的用户名称,相当于执行id -un命令. 语法 whoami(选项) 选项 --help:在线帮助: --version:显示版本信息. 实例 [root@localh ...

  3. caioj 1077 动态规划入门(非常规DP1:筷子)

    首先可以看出排序之后,最优解肯定是每一对都相邻才是最优的 那么我们就要找构成最优解的相邻组 设f[i][j]是前i个字符,k对的最小值 如果当前这个筷子不取的话,f[i][j] = f[i-1][j] ...

  4. 第四讲 Yang-Mills方程与Maxwell方程

    一.变分原理 变分原理始于17世纪的速降问题,也就是连接两点的曲线在有重力的情况下,让初速度为0的一小球最快地通过? 这个问题由伯努力给出解答,他的方法非常巧妙,而最后开创了一个学科——变分学.他假设 ...

  5. 洛谷 P2005 A/B Problem II

    P2005 A/B Problem II 题目背景 为了让大家紧张的心情放松一下,这一题题是一道非常简单的题目. 题目描述 给出正整数N和M,请你计算N div M(N/M的下取整). 输入输出格式 ...

  6. [React] Implement a React Context Provider

    If you have state that needs to exist throughout your application, then you may find yourself passin ...

  7. Cocos2d-x 3.0 Schedule in Node

    ***************************************转载请注明出处:http://blog.csdn.net/lttree************************** ...

  8. 小白学开发(iOS)OC_ 经常使用结构体(2015-08-14)

    // //  main.m //  经常使用结构体 // //  Created by admin on 15/8/13. //  Copyright (c) 2015年 admin. All rig ...

  9. poj1014 hdu1059 Dividing 多重背包

    有价值为1~6的宝物各num[i]个,求能否分成价值相等的两部分. #include <iostream> #include <cstring> #include <st ...

  10. 分贝(dB)的理解

    分贝(dB,decibels)表达的是功率比(power ratio,P2/P1),而不是一个amount,P2>P1,分贝为正值,否则为负值.分贝是对数形式的,而不是线性形式的,也即 20 d ...