1.Model是什么?
model是”模型“的意思,是MVC架构中的”M“部分,是用来传输数据的。
2.ModelAndView是什么?
如果翻译过来就是”模型和视图“,可以理解成MVC架构中的”M“和”V“,其中包含”Model“和”view“两部分,主要功能是:
- 设置转向地址
- 将底层获取的数据进行存储(或者封装)
- 最后将数据传递给View
区别?
1.Model只是用来传输数据的,并不会进行业务的寻址。ModelAndView 却是可以进行业务寻址的,就是设置对应的要请求的静态文件,这里的静态文件指的是类似jsp的文件。Model是每次请求中都存在的默认参数,利用其addAttribute()方法即可将服务器的值传递到jsp页面中;ModelAndView包含model和view两部分,使用时需要自己实例化,利用ModelMap用来传值,也可以设置view的名称。
2.Model是每一次请求可以自动创建,但是ModelAndView 是需要我们自己去new的。
ModelAndView 作用
1.返回到指定的页面
ModelAndView构造方法可以指定返回的页面名称
例:return new ModelAndView("redirect:/m07.jsp");
通过setViewName()方法跳转到指定的页面
例:mav.setViewName("hello");
2.返回参数到指定页面的request作用于中
使用addObject()设置需要返回的值,addObject()有几个不同参数的方法,可以默认和指定返回对象的名字,参数会返回到新页面的request作用域中
ModelAndView 的3种用法
1.ModelAndView的第一种用法,先创建ModelAndView对象,再通过它的方法去设置数据与转发的视图名
setViewName(String viewName):设置此 ModelAndView 的视图名称, 由 DispatcherServlet 通过 ViewResolver 解析
addObject(String attributeName, Object attributeValue):通过key/value的方式绑定数据
————————————————
view:视图
一般的视图类型:HTML、jsp、freemarker、velocity、thymeleaf
课程中主要用freemarker,使用freemarker
直接转发视图
第一步:添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
1
2
3
4
第二步:资源文件配置
spring.freemarker.cache=false
#编码
spring.freemarker.charset=UTF-8
#媒体类型
spring.freemarker.content-type=text/html
#模板文件类型,.ftl是freemarker文件的扩展名
spring.freemarker.suffix=.ftl
#模板文件路径,根目录下的templates文件里
spring.freemarker.template-loader-path=classpath:/templates
spring.freemarker.request-context-attribute=request
1
2
3
4
5
6
7
8
9
10
————————————————
版权声明:本文为CSDN博主「qq_41767337」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41767337/article/details/89217351
SpringMVC中的Model和ModelAndView详解_modelandview是什么_城南蝈蝈的博客-CSDN博客
SpringMVC 中ModelAndView用法_mav.setviewname_风中的剑的博客-CSDN博客
返回视图、Model、ModelMap、ModelAndView_modelandview 返回ftl_qq_41767337的博客-CSDN博客