Sprnig中的视图以名字为标识,视图解析器通过名字来解析视图。Spring提供了多种视图解析器。我们将举例加以说明。
表 13.5. 视图解析器
ViewResolver
描述
AbstractCachingViewResolver |
抽象视图解析器实现了对视图的缓存。在视图被投入使用之前,通常需要进行一些准备工作。从它继承的视图解析器将对要解析的视图进行缓存。 |
XmlViewResolver |
XmlViewResolver实现ViewResolver ,支持XML格式的配置文件。该配置文件必须采用与Spring XML Bean Factory相同的DTD。默认的配置文件是 /WEB-INF/views.xml 。 |
ResourceBundleViewResolver |
ResourceBundleViewResolver实现ViewResolver ,在一个ResourceBundle 中寻找所需bean的定义。这个bundle通常定义在一个位于classpath中的属性文件中。默认的属性文件是views.properties 。 |
UrlBasedViewResolver |
UrlBasedViewResolver实现ViewResolver ,将视图名直接解析成对应的URL,不需要显式的映射定义。如果你的视图名和视图资源的名字是一致的,就可使用该解析器,而无需进行映射。 |
InternalResourceViewResolver |
作为UrlBasedViewResolver 的子类,它支持InternalResourceView (对Servlet和JSP的包装),以及其子类JstlView 和TilesView 。通过setViewClass 方法,可以指定用于该解析器生成视图使用的视图类。更多信息请参考UrlBasedViewResolver 的Javadoc。 |
VelocityViewResolver / FreeMarkerViewResolver |
作为UrlBasedViewResolver 的子类,它能支持VelocityView (对Velocity模版的包装)和FreeMarkerView 以及它们的子类。 |
举例来说,当使用JSP作为视图层技术时,就可以使用UrlBasedViewResolver
。这个视图解析器会将视图名解析成URL,并将请求传递给RequestDispatcher来显示视图。
<bean id="viewResolver"
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
当返回的视图名为test
时,这个视图解析器将请求传递给RequestDispatcher
,RequestDispatcher
再将请求传递给/WEB-INF/jsp/test.jsp
。
当在一个web应用中混合使用不同的视图技术时,你可以使用ResourceBundleViewResolver
:
<bean id="viewResolver"
class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
<property name="basename" value="views"/>
<property name="defaultParentView" value="parentView"/>
</bean>
ResourceBundleViewResolver
通过basename所指定的ResourceBundle
解析视图名。对每个待解析的视图,ResourceBundle里的[视图名].class
所对应的值就是实现该视图的类。同样,[视图名].url
所对应的值是该视图所对应的URL。从上面的例子里你也可以发现,你可以指定一个parent view,其它的视图都可以从parent view扩展。用这种方法,你可以声明一个默认的视图。
关于视图缓存的注意事项 --继承AbstractCachingViewResolver
的解析器可以缓存它曾经解析过的视图。当使用某些视图技术时,这可以大幅度的提升性能。你也可以关掉缓存功能,只要把cache
属性设成false
就可以了。而且,如果你需要在系统运行时动态地更新某些视图(比如,当一个Velocity模板被修改了),你可以调用removeFromCache(String viewName, Locale loc)
方法来达到目的。
分享到:
相关推荐
Spring MVC--5.视图和视图解析器
Spring配置Freemarker视图解析器,配置多个视图解析器
理解视图和视图解析器的解析流程、使用常用的InternalResourceView和JstlView、实现自定义视图、实现重定向操作
整合velocity和jsp 通过不同视图解析器,返回不同视图
Spring配置Freemarker视图解析器,前台页面全部使用freemarker渲染
org.springframework.web.servlet.view.InternalResourceViewResolver视图解析器在默认情况下(没有对它做任何配置):默认会将类上的请求路径和方法返回的字符串组合起来得到jsp视图的完整路径
主要给大家介绍了关于Spring Boot应用配置常用相关视图解析器的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
SpringBoot官网推荐使用HTML视图解析器,但是根据个人的具体业务也有可能使用到JSP视图解析器,所以本文介绍了两种视图解析器,感兴趣的可以了解下
2.1.2 Spring Boot项目构建过程解析 24 2.2 使用起步依赖 27 2.2.1 指定基于功能的依赖 28 2.2.2 覆盖起步依赖引入的传递依赖 29 2.3 使用自动配置 30 2.3.1 专注于应用程序功能 31 2.3.2 运行应用程序...
Spring SpringMVC 简单整合(初学者参考) demo项目对应地址说明 :...ViewResolver:通过扩展视图解析器,支持更多类型的视图解析,例如:jsp、freemarker、pdf、excel等。
SpringMVC设置 Spring MVC初始项目。 它包含基本的json,xml视图解析器
-- 视图解析器,经返回的逻辑视图解析为物理视图 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/"></property> ...
基于协商的视图解析器 目录 本地化:基础原理 本地化:Spring MVC的本地化解析器 本地化:Spring MVC的本地化解析器 LocaleChangeInterceptor:通过URL参数指定 静态资源处理 静态资源处理:使REST风格的URL成为实现 ...
MutilAction多控制解析 SpringMVC Spring控制器 ,及视图解析器的配置
基于协商的视图解析器 目录 本地化:基础原理 本地化:Spring MVC的本地化解析器 本地化:Spring MVC的本地化解析器 LocaleChangeInterceptor:通过URL参数指定 静态资源处理 静态资源处理:使REST风格的URL成为...
5)Spring MVC处理流程 a.... d.ModelAndView里包含了响应View和数据信息,主控制器调用ViewResolver视图解析器根据ModelAndView的内容寻找View组件,生成响应 e.主控制器将响应内容给客户浏览器输出
详细的Spring MVC教程,内容包括控制器 重定向 保存并获取属性参数 拦截器 表单标签和验证表单 视图和视图解析器 上传文件 数据转换和格式化
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再... 4)配置视图解析器 (5)开发 Controller
主要给大家介绍了关于Spring MVC学习教程之视图解析的相关资料,文中通过示例代码介绍的非常详细,对大家学习或使用spring mvc具有一定的参考学习价值,需要的朋友们下面来一起看看吧
spring面试题 一、spring工作原理: 1.spring mvc请所有的请求都提交给...5.Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象 6.视图对象负责渲染返回给客户端。