ModelAndView

  1.Model(模型)

    1.model的本质就是HashMap,向模型中添加数据,就是往HashMap中去添加数据

    2.HashMap 是一个单向查找数组,单向链表数组

    3.LinkedHashMap,本质是一个HashMap,但其将Entry进行了扩展,变成双向的了

  2.View(视图)

    ModelAndView 内部通过 setViewName() 指定视图名称

    这个视图名称对应一个视图对象,这个视图对象会被封装在ModelAndView中,传给视图解析器来解析

视图解析器ViewResolver

  试图解析器ViewResolver接口负责将处理结果生成View视图,常用的实现类有四种

  (1)InternalResourceViewResolver 视图解析器(默认)

  该视图解析器用于完成对当前web应用内部资源的封装与跳转(可以选择是否拼接web资源名称)

  对于内部资源的定义,也只能定义一种格式的资源:存放在同一目录的同一文件类型的资源文件

  (2)BeanNameViewReolver 视图解析器(可以转向外部资源)

  可以定义多个View 视图bean,让处理器中的ModelAndView 通过这些Bean的id的引用 来完成想View中封装资源的跳转

 <bean class="org.springframework.web.servlet.view.BeanNameViewResolver"/>

     <!-- 定义多个 View 视图bean,让处理器中 的 ModelAndView 通过对这些 Bean 的 id 的引用 来完成向 View 中封装资源的跳转 -->
<!-- 定义一个外部资源 View 对象 -->
<bean id="taobao" class="org.springframework.web.servlet.view.RedirectView">
<property name="url" value="http://www.taobao.com"/>
</bean> <!-- 定义一个外部资源 View 对象 -->
<bean id="baidu" class="org.springframework.web.servlet.view.RedirectView">
<property name="url" value="http://www.baidu.com"/>
</bean> <!-- 定义一个内部资源 View 对象 -->
<bean id="myInternalView" class="org.springframework.web.servlet.view.JstlView">
<property name="url" value="/WEB-INF/jsp/hello.jsp"/>
</bean> <bean id="/hello.do" class="com.springmvc.handlers.MyController"/> </beans>

3.XmlViewResolver视图解析器 和 ResourceBundleViewResolver视图解析器

  当需要定义的View视图对象很多时,就是使springmvc.xml文件变得庞大,

  所以可以将这些View视图对象专门抽取出来,单独定义一个xml或resource文件,统一进行管理

视图解析器的优先级

  视图解析器有一个order属性,专门用于设置多个视图解析器的优先级。数字越小,优先级越高,数字相同,先注册的优先级高

  

 <bean class="org.springframework.web.servlet.view.XmlViewResolver">
<property name="location" value="classpath:myViews.xml"></property>
<property name="order" value="1"></property>
</bean>

7.SpringMVC 配置式开发-ModelAndView和视图解析器的更多相关文章

  1. springmvc配置式开发下的视图解析器

    多个视图解析器优先级:

  2. 3.2.2 SpringMVC配置式开发

    SpringMVC配置式开发 1. SpringMVC运行原理(执行过程) 2. 需求 用户提交一个请求, 服务端处理器接收到请求后, 给出一条信息,在相应页面中显示该条信息 3. 开发步骤 (1) ...

  3. SpringMVC配置式开发

    所谓配置式开发是指“处理器类是程序员手工定义,实现了特定接口的类,然后再在SpringMVC 配置文件中对该类进行显示的.明确的注册”的开发方式. 一.处理器映射器HandlerMapping Han ...

  4. 《SpringMVC从入门到放肆》四、SpringMVC配置式开发(处理器映射器)

    上一篇我们讲解了DispatcherServlet的url-pattern配置详解,今天我们来真正对SpringMVC进行配置式开发.所谓配置式开发是指“处理器类是程序员自己定义的.实现了特定接口的类 ...

  5. 6.SpringMVC 配置式开发-处理器

    处理器除了实现Controller 接口外,还可以继承自一些其他的类,来完成一些特殊的功能 1.继承自AbstractController类 若处理器继承自AbstractController类,那么 ...

  6. 5.SpringMVC 配置式开发-处理器适配器

    处理器适配器HandlerAdapter 1.SimpleControllerHandlerAdapter(默认) 所有实现了 Controller 接口的处理器 Bean,均是通过SimpleCon ...

  7. 4.SpringMVC 配置式开发-处理器映射器

    处理器映射器 HandlerMapping HandlerMapping 接口负责根据request请求找到对应的Handler处理器及Interceptor拦截器, 并将它们封装在HandlerEx ...

  8. 《SpringMVC从入门到放肆》五、SpringMVC配置式开发(处理器适配器)

    上一篇我们大致讲解了处理器映射器的处理流程以及跟了一下源码的执行流程.今天我们来了解一下处理器适配器. 一.适配器模式 在阎宏博士的<JAVA与模式>一书中开头是这样描述适配器(Adapt ...

  9. SpringMVC 配置式开发-HandlerMapping的执行流程(八)

    具体看这两块是怎么执行的 下图是实现了DispatcherServlet从HandleMapping获得处理器执行链的逻辑的源代码 下面是DispatcherServlet从HandleAdaptor ...

随机推荐

  1. fastjson在将Map<Integer, String>转换成JSON字符串时,出现中文乱码问题

    fastjson在将Map<Integer, String>转换成JSON字符串时,出现中文乱码问题. 先记下这个坑,改天在看看是怎么导致的,暂时通过避免使用Integer作为键(使用St ...

  2. Redis查询_Tips

    基础知识——介绍 Redis简介 REmote Dictionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统. Redis是一个完全 ...

  3. Vue学习笔记(二)

    1.引入组件需要注意的事项说明和步骤: 第一步,引入对应的组件: import Hello2 from './components/Hello2' 第二步: 需要注册该组件才可以使用 <scri ...

  4. save()和savaorupdate的区别

    hibernate的保存 hibernate对于对象的保存提供了太多的方法,他们之间有很多不同,在这里细说一下,以便区别: 一.预备知识:     在所有之前,说明一下,对于hibernate,它的对 ...

  5. Docker使用Portainer搭建可视化界面

    Portainer介绍 Portainer是Docker的图形化管理工具,提供状态显示面板.应用模板快速部署.容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作).事件日志显示.容器控制台 ...

  6. Flutter中通过循环渲染组件

    class ContactsState extends State<Contacts>{ List formList; initState() { super.initState(); f ...

  7. Flutter的布局方法

    重点是什么? Widgets 是用于构建UI的类. Widgets 用于布局和UI元素. 通过简单的widget来构建复杂的widget Flutter布局机制的核心就是widget.在Flutter ...

  8. C4model实践总结

    能看到这篇文章的人,我就不用废话给你介绍C4model.vscode.plantuml这些是什么以及怎么安装了. 0. 基本语法. 1. 创建常用模板.并保存到snippet. 2.利用关系REL控制 ...

  9. PHP常用正则表达式精选

    $regex = '[\u4e00-\u9fa5]'; //匹配中文字符的正则表达式 $regex = '^[\u4E00-\u9FA5A-Za-z0-9]+$'; or $regex = '^[\u ...

  10. 设计模式七大原则(C++描述)

    前言 最近在学习一些基本的设计模式,发现很多博客都是写了六个原则,但我认为有7个原则,并且我认为在编码中思想还是挺重要,所以写下一篇博客来总结下 之后有机会会写下一些设计模式的博客(咕咕咕...... ...