Model、ModelMap、ModelAndView的作用及区别
##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的作用及区别的更多相关文章
- Model ModelMap ModelAndView
前言 Spring MVC在调用方法前会创建一个隐含的模型对象作为模型数据的存储容器. 如果方法的入参为ModelMap,Model,Map类型,Spring MVC会将隐含模型的引用传递给这些入参. ...
- Model & ModelMap & ModelAndView 比较ModelFactory简介
Model: 是一个接口,其实现类必继承ModelMap. ModelMap: 继承与LinkedHashMap,相当于自定义了一个map. ModelAndView: 里面封装了两个对象,其中vie ...
- springboot中model,modelandview,modelmap的区别与联系
springboot 中Model,ModelAndView,ModelMap的区别与联系 Model是一个接口,它的实现类为ExtendedModelMap,继承ModelMap类 public c ...
- springMVC Model ModelMap 和 ModelAndView的区别(转)
原文地址:springMVC Model ModelMap 和 ModelAndView的区别 近来在看代码,发现controller里有不同的处理返回数据的方式,而自己一直在用ModelAndVie ...
- Spring中Model,ModelMap以及ModelAndView之间的区别
原文链接:http://blog.csdn.net/zhangxing52077/article/details/75193948 Spring中Model,ModelMap以及ModelAndVie ...
- Model/ModelMap 和 ModelAndView 的区别使用
Model/ModelMap 和 ModelAndView 的区别使用 Model/ModelMap controller: package springmvc.controller; import ...
- Model、ModelMap、ModelAndView的使用和区别
1.Model的使用 数据传递:Model是通过addAttribute方法向页面传递数据的: 数据获取:JSP页面可以通过el表达式或C标签库的方法获取数据: return:return返回的是指定 ...
- ModelMap和ModelAndView的作用
首先介绍ModelMap和ModelAndView的作用 ModelMap ModelMap 对象主要用于传递控制方法处理数据到结果页面,也就是说我们把结果页面上需要的数据放到ModelMap对象中即 ...
- SpringMVC Map Model ModelMap 和 ModelAndView
代码: package com.gaussic.controller; import com.gaussic.model.AccountModel; import org.springframewor ...
随机推荐
- bzoj1922 [SDOI2010]大陆争霸 分层图
问题描述 幻想历8012年5月12日深夜,斯普林·布拉泽降下神谕:“Trust me, earn eternal life.”克里斯军团士气大增.作为克里斯军团的主帅,你决定利用这一机会发动奇袭,一举 ...
- 题解 CF915D 【Almost Acyclic Graph】
这道题我第一次的想法是直接判环的数量,然而事实证明实在是太naive了. 随便画个图都可以卡掉我的解法.(不知道在想什么) 这道题的正解是拓扑排序. 朴素的想法是对所有边都跑一次拓扑,但这样$O(m( ...
- CsGL着色的三角形
转自NeHe教程 public override void Draw() { // Here's Where We Do All The Drawing glClear(GL_COLOR_BUFFER ...
- <Machine Learning in Action >之二 朴素贝叶斯 C#实现文章分类
def trainNB0(trainMatrix,trainCategory): numTrainDocs = len(trainMatrix) numWords = len(trainMatrix[ ...
- JVM-ClassLoader装载class的流程
在JVM中,有三种默认的类加载器,分别为Bootstrap ClassLoader,Extension CLassLoader以及App ClassLoader.其中,Bootstrap Classl ...
- thinkphp5项目--企业单车网站(二)
thinkphp5项目--企业单车网站(二) 项目地址 fry404006308/BicycleEnterpriseWebsite: Bicycle Enterprise Websitehttps:/ ...
- codeforces Gym100589H Count Subarrays 树状数组/线段树+离散化
题意:给你一个数组,问你有多少子数组中的逆元数不小于K个,N<105 还在研究中
- PullToRefreshListView中嵌套ViewPager滑动冲突的解决
PullToRefreshListView中嵌套ViewPager滑动冲突的解决 最近恰好遇到PullToRefreshListView中需要嵌套ViewPager的情况,ViewPager 作为头部 ...
- java jframe关闭窗口
frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { i ...
- SQL函数-stuff()
select stuff(列名,开始位置,长度,替代字符串) 用于删除指定长度的字符串,并可以在指定长度的地方插入新的字符: 在指定长度的地方添加新的字符