Spring中Model,ModelMap以及ModelAndView之间的区别
原文链接:http://blog.csdn.net/zhangxing52077/article/details/75193948

版权声明:本文为博主原创文章,未经博主允许不得转载。
1.场景分析
在许多实际项目需求中,后台要从控制层直接返回前端所需的数据,这时Model大家族就派上用场了。
2.三者区别
①Model
Model是一个接口,它的实现类为ExtendedModelMap,继承ModelMap类
public class ExtendedModelMap extends ModelMap implements Model
- 1
②ModelMap
ModelMap继承LinkedHashMap,spring框架自动创建实例并作为controller的入参,用户无需自己创建
public class ModelMap extends LinkedHashMap<String,Object>
- 1
③ModelAndView
顾名思义,ModelAndView指模型和视图的集合,既包含模型 又包含视图;ModelAndView的实例是开发者自己手动创建的,这也是和ModelMap主要不同点之一;
3.实例说明
准备工作:springboot工程集成了velocity模版引擎,暂不会的伙伴看看笔者velocity集成的博客:http://blog.csdn.net/zhangxing52077/article/details/73194948,恕不赘述。
①Model的用法
spring自动为Model创建实例,并作为controller的入参
@RequestMapping("hello")
public String testVelocity(Model model,String name){
model.addAttribute("name",name);
return "hello";
}
测试效果:
②Model与model用法差不多
@RequestMapping("hello")
public String testVelocity(ModelMap model,String name){
model.addAttribute("name",name);
return "hello";
}
这里效果跟Model运行效果一样
③ModelAndView的用法
@RequestMapping("model")
public ModelAndView testModel(String name) {
//构建ModelAndView实例,并设置跳转地址
ModelAndView view = new ModelAndView("test");
//将数据放置到ModelAndView对象view中,第二个参数可以是任何java类型
view.addObject("name",name);
//返回ModelAndView对象view
return view;
}
设置view跳转地址
ModelAndView view = new ModelAndView("test");
当然还可以这样设置跳转地址
ModelAndView view = new ModelAndView();
view.setViewName("test");
其中的test表示templates中的test.html,springboot默认的模版文件一般都在resources/templates下
设置view的model
view.addObject("name","zhangxing,hello");
运行效果:
这样既跳转了前端页面,又把值传过来了,一石二鸟!好了,我是张星,欢迎加入博主技术交流群,群号:313145288
Spring中Model,ModelMap以及ModelAndView之间的区别的更多相关文章
- Spring中Model、ModelMap及ModelAndView之间的区别
Spring中Model.ModelMap及ModelAndView之间的区别 1. Model(org.springframework.ui.Model)Model是一个接口,包含addAttr ...
- Spring中Model、ModelMap及ModelAndView之间的区别+传递参数
org.springframework.ui.Model(接口)传递数据,Spring框架自动创建它的一个实现类,如BindingAwareModelMap org.springframework.u ...
- springMVC Model ModelMap 和 ModelAndView的区别(转)
原文地址:springMVC Model ModelMap 和 ModelAndView的区别 近来在看代码,发现controller里有不同的处理返回数据的方式,而自己一直在用ModelAndVie ...
- Model/ModelMap 和 ModelAndView 的区别使用
Model/ModelMap 和 ModelAndView 的区别使用 Model/ModelMap controller: package springmvc.controller; import ...
- springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序 http://www.360doc.com/content/14/03 ...
- Spring中@Autowired注解、@Resource注解的区别 (zz)
Spring中@Autowired注解.@Resource注解的区别 Spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource.@ ...
- SpringMVC中Map、Model、ModelMap、ModelAndView之间的关系及区别
首先,在了解这三者之前,需要知道一点:SpringMVC在调用方法前会创建一个隐含的数据模型(Model),作为模型数据的存储容器, 成为”隐含模型”. 如果controller方法的参数为Moedl ...
- spring学习之springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
spring mvc处理方法支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void.下面将对具体的一一进行说明: ModelAn ...
- SpringMVC Map Model ModelMap 和 ModelAndView
代码: package com.gaussic.controller; import com.gaussic.model.AccountModel; import org.springframewor ...
随机推荐
- STM32烧录的常用方式
stm32烧录常用的方式一般为ST-LINK(或者J-tag)下载仿真和ISP下载 一.仿真器下载 仿真器分为J-TAG和SWD仿真,SWD仿真只需要4根线(VCC.GND.CLK.DATA)就可以了 ...
- python 相对路径导入 与 绝对路径导入
我的理解: 假设有一个文件夹 app 若 app 下有app/__init__.py文件,则此 app 被视作一个 package,而 app 下的其他文件/文件夹被视作 module 我们知道,pa ...
- springboot项目生成jar包(带静态资源)方法
[Maven]在pom.xml文件中使用resources插件的小作用 不过war包比较实用,毕竟独立的tomcat比较好控制
- 行级安全(Row-Level Security)
通过授予和拒绝(Grant/Deny)命令控制用户的权限,只能控制用户对数据库对象的访问权限,这意味着,用户访问的粒度是对象整体,可以是一个数据表,或视图等,用户要么能够访问数据库对象,要么没有权限访 ...
- 激活IntelliJ IDEA到2100年
1.下载破解文件(破解版本2018.2,其他版本未尝试) http://idea.lanyus.com/jar/JetbrainsIdesCrack-4.2-release-sha1-3323d5d0 ...
- Git的简单操作
一.Git安装 windows下,可在在git官网下载(https://git-scm.com/downloads) 也有360提供的git(http://baoku.360.cn/soft/show ...
- Zip伪加密 破解ZIP密码
ZIP是一种相当简单的分别压缩每个文件的存档格式.分别压缩文件允许不必读取另外的数据而检索独立的文件:理论上,这种格式允许对不同的文件使用不同的算法.不管用何种方法,对这种格式的一个告诫是对于包含很多 ...
- PowerDesigner数据库设计实用技巧
欢迎大家补充,谢谢! 1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体.在特殊情况下,它们可能是一对多或多对一的 ...
- 初始化Weex项目遇到的问题记录
Weex 提供了一个命令行工具 weex-toolkit 来帮助开发者使用 Weex.它可以用来快速创建一个空项目.初始化 iOS 和 Android 开发环境.调试.安装插件等操作. 目前 weex ...
- 2-Nineteenth Scrum Meeting-20151219
任务安排 成员 今日完成 明日任务 闫昊 写完学习进度记录的数据库操作 请假(数据库) 唐彬 和服务器老师交流讨论区后台接口 请假(数据库) 史烨轩 尝试使用downloadmanager对noti ...