SpringMVC中的freemarker, Model和ModelAndView详解

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
直接转发视图

第一步:添加依赖

   
        org.springframework.boot
        spring-boot-starter-freemarker
   

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博客

你可能感兴趣的:(java,服务器,servlet)