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中封装资源的跳转

 1 <bean class="org.springframework.web.servlet.view.BeanNameViewResolver"/>
 2
 3     <!-- 定义多个 View 视图bean,让处理器中 的 ModelAndView 通过对这些 Bean 的 id 的引用 来完成向 View 中封装资源的跳转 -->
 4     <!-- 定义一个外部资源 View 对象 -->
 5     <bean id="taobao" class="org.springframework.web.servlet.view.RedirectView">
 6         <property name="url" value="http://www.taobao.com"/>
 7     </bean>
 8
 9     <!-- 定义一个外部资源 View 对象 -->
10     <bean id="baidu" class="org.springframework.web.servlet.view.RedirectView">
11         <property name="url" value="http://www.baidu.com"/>
12     </bean>
13
14     <!-- 定义一个内部资源 View 对象 -->
15     <bean id="myInternalView" class="org.springframework.web.servlet.view.JstlView">
16         <property name="url" value="/WEB-INF/jsp/hello.jsp"/>
17     </bean>
18
19
20     <bean id="/hello.do" class="com.springmvc.handlers.MyController"/>
21
22
23
24 </beans>

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

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

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

视图解析器的优先级

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

  

1 <bean class="org.springframework.web.servlet.view.XmlViewResolver">
2         <property name="location" value="classpath:myViews.xml"></property>
3         <property name="order" value="1"></property>
4     </bean>
时间: 2024-10-22 16:51:52

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

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

上一篇我们大致讲解了处理器映射器的处理流程以及跟了一下源码的执行流程.今天我们来了解一下处理器适配器. 一.适配器模式 在阎宏博士的<JAVA与模式>一书中开头是这样描述适配器(Adapter)模式的:适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作.用电器做例子,笔记本电脑的插头一般都是三相的,即除了阳极.阴极外,还有一个地极.而有些地方的电源插座却只有两极,没有地极.电源插座与笔记本电脑的电源插头不匹配使得笔记本电脑无法使

springMVC配置式开发

springMVC配置jsp/html视图解析器

目录 1.maven项目引入freemark相关jar包 2.freemarker.properties 3.配置视图解析器 参考自springMVC配置jsp.html多视图解析器,本文稍作补充 1.maven项目引入freemark相关jar包 freemaker是以个模板引擎,可以根据提供的数据和创建好的模板,去自动的创建html静态页面.所以在返回html视图时可以用这个引擎结合数据生成html静态页面. <dependency> <groupId>org.springfr

[转载]开发 Spring 自定义视图和视图解析器

原文出处 http://www.ibm.com/developerworks/cn/java/j-lo-springview/ 概述 Spring 3.0 默认包含了多种视图和视图解析器,比如 JSP.Velocity 视图等,但在某些情况下,我们需要开发自定义的视图及其解析器,以便显示特殊文件格式的视图,我们也可以使用自定义视图及解析器,针对特定的视图做相应的处理.本文将通过一个示例来介绍如何开发 Spring 自定义视图和视图解析器,来显示后缀名为 SWF 的视图,并提供一个简单的注册机制,

springMVC初探视图解析器——InternalResourceViewResolver

springmvc在处理器方法中通常返回的是逻辑视图,如何定位到真正的页面,就需要通过视图解析器. springmvc里提供了多个视图解析器,InternalResourceViewResolver就是其中之一: 最常用的视图解析器:InternalResourceViewResolver 当处理器返回“index”时,InternalResourceViewResolver解析器会自动添加前缀和后缀:/WEB-INF/jsp/index.jsp 注意:这里的order表示视图解析的优先级,数目

Spring MVC的多视图解析器配置及与Freemarker的集成

一.从freemarker谈起 Freemarker使用模板技术进行视图的渲染.自从看了Struts标签.Freemarker.JSTL的性能对比后,我毅然决定放弃Struts标签了!效率太差…… Spring本身支持了对Freemarker的集成.只需要配置一个针对Freemarker的视图解析器即可. 二.Spring MVC视图解析器 视图解析器的工作流程大致是这样的:Controller的某个方法执行完成以后,返回一个视图(比如:listUser),视图解析器要做的工作就是找到某个对象来

Spring MVC之视图解析器

Spring MVC提供的视图解析器使用ViewResolver进行视图解析,实现浏览器中渲染模型.ViewResolver能够解析JSP.Velocity模板.FreeMarker模板和XSLT等多种视图. Spring处理视图最重要的两个接口是ViewResolver和View.ViewResolver接口在视图名称和真正的视图之间提供映射关系: 而View接口则处理请求将真正的视图呈现给用户. 1.ViewResolver视图解析器 在Spring MVC控制器中,所有的请求处理方法(Ac

SpringMVC视图解析器配置式开发

视图解析器分为: 默认方法名解析器 属性方法名解析器 参数方法名解析器 测试案例:创建类 package cn.happy.day03MultiAction; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.multiaction.MultiActionController; import javax.servlet.http.HttpServletRe

《SpringMVC从入门到放肆》八、SpringMVC注解式开发(基本配置)

上一篇我们结束了配置式开发,配置式开发目前在企业中用的并不是很多,大部分企业都在使用注解式开发,所以今天我们就来学习注解式开发.所谓SpringMVC注解式开发是指,处理器是基于注解的类的开发方式.对于每一个定义的处理器,无需在配置文件中逐个注册,只需在代码中通过对类与方法的注解,便可完成注册. 一.注册组件扫描器 这里说的组件即处理器,需要指定处理器所在的基本包. <?xml version="1.0" encoding="UTF-8"?> <b