`
小嘴冰凉
  • 浏览: 449445 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring视图解析器和视图的理解

阅读更多
在视图解析器的继承关系中,从AbstractCachingViewResolver开发分成不同形式的解析器,ResourceBundleViewResolver,
UrlBasedViewResolver,XmlViewResolver。


今天看了下spring有关的源码,记录下关于ResourceBundleViewResolver,UrlBasedViewResolver和
解析器之间的不同。

如果用ResourceBundleViewResolver解析器,我们会定义一个或多个与它相关联的文件,默认为views.properties
文件,通过不同名字的文件可以进行国际化的配置。如果spring配置文件中定义了ResourceBundleViewResolver解析器,当controller返回
ModelAndView的时候,系统会根据当前所访问的地区把与ResourceBundleViewResolver相对应文件的内容映射成bean,与spring配置
文件中定义的其它bean一起放在spring的缓存map中,(key中.class之前的部分做为beanid,value作为map的值),所以如果我们把
views.properties中定义的内容放入spring的配置文件中,一样可以。
然后系统把ModelAndView中返回的试图名作为key从map中查询定义的view类,如果查询出,则根据views.properties中与view相对应的url查找出view模版。
如果查询不到,则继续用在spring中定义的其它视图解析器查询视图,这是它与UrlBasedViewResolver解析器最大的不同点,UrlBasedViewResolver,
下的子解析器如果在他们的缓存中查询不到视图,则会判断ModelAndView中提供的viewname与它的属性viewNames中的字符创是否相对应,如果对应则新生成一个view。
放入缓存中,如果不存在对应则通过spring配置文件中定义的其它视图解析器查询视图

在UrlBasedViewResolver视图解析器中定义了(viewNames可以在spring配置文件中配置)
prefix,suffix和viewNames三个字段,prefix和suffix是字符串类型,它们会与ModelAndView中返回的viewname一起组成请求视图(.jsp, .vm 等)的模版路径
(prefix + viewname + suffix),系统会根据这个路径查找到视图模版,将模版与model一起返回给浏览器(这里还有一些其它的工作,excel视图是需要自己继承的,等)。
而viewNames字段是一个字符串数组,它里面的字符串可以写成正则表达式的方式。viewNames是字符串数组

ResourceBundleViewResolver配置文件中定义的url与UrlBasedViewResolver中prefix + viewname + suffix意思是一样的。viewname 为ModelAndView中的视图名

  • 大小: 3.7 KB
  • 大小: 18 KB
  • 大小: 4.1 KB
分享到:
评论
1 楼 小嘴冰凉 2010-11-30  
如果UrlBasedViewResolver中没有定义viewNames,则无论是否是ModelAndView中返回的试图,都会创建一个与解析器自身相对应的视图,这样就会出错,这也是它与ResourceBundleViewResolver的不同点

相关推荐

    Spring MVC--5.视图和视图解析器

    Spring MVC--5.视图和视图解析器

    Spring配置Freemarker视图解析器,配置多个视图解析器

    Spring配置Freemarker视图解析器,配置多个视图解析器

    velocity jsp多视图解析器整合

    整合velocity和jsp 通过不同视图解析器,返回不同视图

    Spring配置Freemarker视图解析器,前台页面全部使用freemarker渲染

    Spring配置Freemarker视图解析器,前台页面全部使用freemarker渲染

    Spring MVC中InternalResourceViewResolver视图解析器的默认行为.docx

    org.springframework.web.servlet.view.InternalResourceViewResolver视图解析器在默认情况下(没有对它做任何配置):默认会将类上的请求路径和方法返回的字符串组合起来得到jsp视图的完整路径

    Spring Boot应用配置常用相关视图解析器详解

    主要给大家介绍了关于Spring Boot应用配置常用相关视图解析器的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Spring_MVC_控制器方法返回值与视图的关系

    例如,控制器方法可以返回一个 ModelAndView 对象,其中包含名为 "index" 的视图和一个模型对象,该模型对象将被传递给视图。 void 类型返回值 如果控制器方法返回 void 类型的返回值,那么 Spring MVC 将会根据 ...

    SpringBoot项目中的视图解析器问题(两种)

    SpringBoot官网推荐使用HTML视图解析器,但是根据个人的具体业务也有可能使用到JSP视图解析器,所以本文介绍了两种视图解析器,感兴趣的可以了解下

    Spring MVC的总结梳理

    灵活性:Spring MVC 提供了多种视图解析器,使得视图的选择变得简单和灵活。开发者可以根据项目的需求选择不同的视图解析器,如 JSP、Thymeleaf、FreeMarker 等。 可配置性:Spring MVC 提供了强大的配置功能,包括...

    Spring SpringMVC 简单整合

    Spring SpringMVC 简单整合(初学者参考) demo项目对应地址说明 :...ViewResolver:通过扩展视图解析器,支持更多类型的视图解析,例如:jsp、freemarker、pdf、excel等。

    Spring-mvc,例题

    -- 视图解析器,经返回的逻辑视图解析为物理视图 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/"></property> ...

    SpringMVCSetup:Spring MVC初始项目。 它包含基本的json,xml视图解析器

    SpringMVC设置 Spring MVC初始项目。 它包含基本的json,xml视图解析器

    spring基础进阶技巧200篇.zip

    Spring MVC:介绍了Spring MVC框架的使用方法和技巧,包括控制器、视图解析器、数据绑定等。 Spring Boot:介绍了Spring Boot框架的使用和配置,包括自动配置、起步依赖等。 数据访问:介绍了Spring框架对数据库访问...

    spring boot实战.pdf高清无水印

    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 运行应用程序...

    java spring mvc

    5)Spring MVC处理流程 a.... d.ModelAndView里包含了响应View和数据信息,主控制器调用ViewResolver视图解析器根据ModelAndView的内容寻找View组件,生成响应 e.主控制器将响应内容给客户浏览器输出

    Spring MVC 3.0实战指南.ppt

    基于协商的视图解析器 目录 本地化:基础原理 本地化:Spring MVC的本地化解析器 本地化:Spring MVC的本地化解析器 LocaleChangeInterceptor:通过URL参数指定 静态资源处理 静态资源处理:使REST风格的URL成为实现 ...

    Spring MVC.pptx

    详细的Spring MVC教程,内容包括控制器 重定向 保存并获取属性参数 拦截器 表单标签和验证表单 视图和视图解析器 上传文件 数据转换和格式化

    Spring 控制器的简单应用(MutilAction)

    MutilAction多控制解析 SpringMVC Spring控制器 ,及视图解析器的配置

    Spring3MVC注解教程.ppt

    基于协商的视图解析器 目录 本地化:基础原理 本地化:Spring MVC的本地化解析器 本地化:Spring MVC的本地化解析器 LocaleChangeInterceptor:通过URL参数指定 静态资源处理 静态资源处理:使REST风格的URL成为...

    Spring MVC学习教程之视图深入解析

    主要给大家介绍了关于Spring MVC学习教程之视图解析的相关资料,文中通过示例代码介绍的非常详细,对大家学习或使用spring mvc具有一定的参考学习价值,需要的朋友们下面来一起看看吧

Global site tag (gtag.js) - Google Analytics