7.SpringMVC 配置式开发-ModelAndView和视图解析器
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和视图解析器的更多相关文章
- springmvc配置式开发下的视图解析器
多个视图解析器优先级:
- 3.2.2 SpringMVC配置式开发
SpringMVC配置式开发 1. SpringMVC运行原理(执行过程) 2. 需求 用户提交一个请求, 服务端处理器接收到请求后, 给出一条信息,在相应页面中显示该条信息 3. 开发步骤 (1) ...
- SpringMVC配置式开发
所谓配置式开发是指“处理器类是程序员手工定义,实现了特定接口的类,然后再在SpringMVC 配置文件中对该类进行显示的.明确的注册”的开发方式. 一.处理器映射器HandlerMapping Han ...
- 《SpringMVC从入门到放肆》四、SpringMVC配置式开发(处理器映射器)
上一篇我们讲解了DispatcherServlet的url-pattern配置详解,今天我们来真正对SpringMVC进行配置式开发.所谓配置式开发是指“处理器类是程序员自己定义的.实现了特定接口的类 ...
- 6.SpringMVC 配置式开发-处理器
处理器除了实现Controller 接口外,还可以继承自一些其他的类,来完成一些特殊的功能 1.继承自AbstractController类 若处理器继承自AbstractController类,那么 ...
- 5.SpringMVC 配置式开发-处理器适配器
处理器适配器HandlerAdapter 1.SimpleControllerHandlerAdapter(默认) 所有实现了 Controller 接口的处理器 Bean,均是通过SimpleCon ...
- 4.SpringMVC 配置式开发-处理器映射器
处理器映射器 HandlerMapping HandlerMapping 接口负责根据request请求找到对应的Handler处理器及Interceptor拦截器, 并将它们封装在HandlerEx ...
- 《SpringMVC从入门到放肆》五、SpringMVC配置式开发(处理器适配器)
上一篇我们大致讲解了处理器映射器的处理流程以及跟了一下源码的执行流程.今天我们来了解一下处理器适配器. 一.适配器模式 在阎宏博士的<JAVA与模式>一书中开头是这样描述适配器(Adapt ...
- SpringMVC 配置式开发-HandlerMapping的执行流程(八)
具体看这两块是怎么执行的 下图是实现了DispatcherServlet从HandleMapping获得处理器执行链的逻辑的源代码 下面是DispatcherServlet从HandleAdaptor ...
随机推荐
- .md 即 markdown 文件的基本常用编写语法
0. 前言 Markdown 是一种纯文本格式的标记语言.通过简单的标记语法,它可以使普通文本内容具有一定的格式.现在的项目都使用了 git 仓库,再加上远程仓库 github 托管,那就难免要写一些 ...
- 阶段5 3.微服务项目【学成在线】_day04 页面静态化_01-页面静态化需求分析
上半部分就是静态化 业务流程如下: 1.获取模型数据 2.制作模板 3.对页面进行静态化 4.将静态化生成的html页面存放文件系统中 5.将存放在文件系统的html文件发布到服务器
- [Scikit-learn] 2.3 Clustering - kmeans
参考: 2.3. Clustering 2.4. Biclustering 2.1.2.3. The Dirichlet Process Clusering, GMM, Variational Inf ...
- Linux Shell列出网络中所有的活跃主机
因为的的网段是 192.168.1.0/24 , 所以我只需遍历 192.168.1.1 到 192.168.1.255 之间的所有ip然后进行 ping 就可以了: test.sh: #!/bin/ ...
- 12-1 TCP/IP协议栈
TCP/IP协议栈 有限状态机FSM:Finite State Machine CLOSED 没有任何连接状态 LISTEN 侦听状态,等待来自远方TCP端口的连接请求 SYN-SENT 在发送连接请 ...
- 324rfwrtg5gft8oywtfbserkufgs
324rfwrtg5gft8oywtfbserkufgs (tester.inf.nano)
- 【ARM-Linux开发】Linux下更改目录下所有文件的所有者及其权限
[ARM-Linux开发]Linux下更改目录下所有文件的所有者及其权限 chown 更换所有者: chmod 改变权限: 想一次修改某个目录下所有文件的权限,包括子目录中的文件权限也要修改,要使用参 ...
- 【DSP开发】帮您快速入门 TI 的 Codec Engine
德州仪器半导体技术(上海)有限公司 通用DSP 技术应用工程师 崔晶 德州仪器(TI)的第一颗达芬奇(DaVinci)芯片(处理器)DM6446已经问世快三年了.继DM644x之后,TI又陆续推出了D ...
- 小米 9 SE 获取Root 和 安装Magisk
1.刷入第三方REC 和 Magisk 参考教程:[LR.Team]小米9SE专版TWRP中英文修改优化版_小米9 SE_MIUI论坛 使用上面的工具,傻瓜式操作即可. 关于刷入成功之后的说明:刷入成 ...
- Vue.js 关于双向绑定的一些实现细节
Vue.js 是采用 Object.defineProperty 的 getter 和 setter,并结合观察者模式来实现数据绑定的. 当把一个普通 Javascript 对象传给 Vue 实例来作 ...