- 浏览: 969440 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
qq_15946053:
基于spring的项目要导出成jar怎么做呢用eclipse的 ...
Spring项目导出可运行的JAR -
flyfeifei66:
baseservice、dao代码是同一个,但是实例配置多个, ...
Spring通过父类注入公用属性的技巧 -
yuechao4039:
写得不错,望楼主再接再厉
Spring中配置和读取多个Properties文件 -
xinglianxlxl:
psubscribe对我有用
Jedis的Publish/Subscribe功能的运用 -
Fenix87:
js中怎么调用配置文件的参数呢
Spring中配置和读取多个Properties文件
个人学习参考所用,勿喷!
5.按名称解析视图以及视图和内容协商
5.1)按照名称解析视图。
从处理程序返回的逻辑视图必须和一个视图模板通过确切的映射策略联系起来。DispatcherServlet 能够自动检测到在Web上下文中声明的实现了ViewResolver接口的的一个或者多个视图解析器Bean。Spring自带了多个ViewResolver的实现。注意,要使用这些解析器都必须在Web上下文中声明这些解析器Bean。
5.1.1)根据模板名称和位置解析视图。InternalResourceViewResolver视图解析器的策略是直接映射到模板名称和位置。这个解析器能够支持Redirect前缀(如:"redirect:welcome")。
<!-- 只能支持解析可由Servlet API的RequestDispatcher转发的视图资源图,如:内部jsp或者servlet。 --> <bean id="internalResourceResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 决定视图类型,如果添加了jstl支持(即有jstl.jar),那么默认就是解析为jstl视图 --> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> <!-- 视图前缀 --> <property name="prefix" value="/WEB-INF/jsp/" /> <!-- 视图后缀 --> <property name="suffix" value=".jsp" /> </bean>
5.1.2)从XML配置文件计息视图。通过配置Bean的方式来解析视图,也可以利用XMLViewResolver从单独的文件中解析:
<bean class="org.springframework.web.servlet.view.XMLViewResolver"> <!-- 从单独配置文件中加载的时候配置 --> <property name="location" value="/WEB-INF/court-veiws.xml" /> </bean>
下面就包含了一个映射和一个重新定向设定:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="welcome" class="org.springframework.web.servlet.view.JstlView"> <property name="url" value="/WEB-INF/jsp/welcome.jsp" /> </bean> <bean id="redirect" class="org.springframework.web.servlet.view.RedirectView"> <property name="url" value="welcome" /> </bean> </beans>
5.1.3)从资源集解析视图。这个和上面的原理差不多,只是在资源集中声明Bean。这里可以用内置的ResourceBundleViewResolver实现:
<bean id="resourceBundleResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver"> <!-- 从views.properties中解析Bean,views.properties需要放在WEB-INF目录下 --> <property name="basename" value="views" /> </bean>
views.properties内容格式如下:
welcomeRedirect.(class)=org.springframework.web.servlet.view.RedirectView welcomeRedirect.url=welcome.htm
5.1.4) 用多个视图解析器。这些解析器通过order属性来设置优先级,一般InternalResourceViewResolver优先级会放在最后:
<bean id="xmlViewResolver" class="org.springframework.web.servlet.view.XMLViewResolver"> <property name="location" value="/WEB-INF/court-veiws.xml" /> <property name="order" value="#{T(org.springframework.core.Ordered).HIGHEST_PRECEDENCE}" /> </bean> <bean id="resourceBundleResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver"> <property name="basename" value="views" /> <property name="order" value="#{xmlViewResolver.order+1}" /> </bean> <bean id="secondaryResourceBundleResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver"> <property name="basename" value="secondaryviews" /> <property name="order" value="#{resourceBundleResolver.order+1}" /> </bean> <bean id="internalResourceResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> <property name="order" value="#{secondaryResourceBundleResolver.order+1}" /> </bean>
5.2)视图和内容协商。
视图和内容协商在Spring MVC中也是作为解析器配置的。用来解决无扩展名的URL和多视图类型映射。ContentNegotiatingViewResolver与其他解析器集成配置如下:
<!-- Views mapped in views.properties (PDF, XLS classes, and others) --> <bean id="contentNegotiatingResolver" class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> <property name="order" value="#{T(org.springframework.core.Ordered).HIGHEST_PRECEDENCE}" /> <property name="mediaTypes"> <map> <entry key="html" value="text/html" /> <entry key="pdf" value="application/pdf" /> <entry key="xsl" value="application/vnd.ms-excel" /> <entry key="xml" value="application/xml" /> <entry key="json" value="application/json" /> </map> </property> </bean> <bean id="resourceBundleResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver"> <property name="basename" value="views" /> <property name="order" value="#{contentNegotiatingResolver.order+1}" /> </bean> <bean id="secondaryResourceBundleResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver"> <property name="basename" value="secondaryviews" /> <property name="order" value="#{resourceBundleResolver.order+1}" /> </bean> <bean id="internalResourceResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> <property name="order" value="#{secondaryResourceBundleResolver.order+1}" /> </bean>
ContentNegotiatingViewResolver解析器得到了最高的优先级用来确定URL请求类型。然后依次从高到低的优先级顺序来解析需要返回的视图,第一个匹配的视图返回。还可以找这个解析器内部配置其他解析器和默认视图:
<!-- 根据客户端的不同的请求决定不同的view进行响应, 如 /blog/1.json /blog/1.xml --> <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> <!-- 设置为true以忽略对Accept Header的支持 --> <property name="ignoreAcceptHeader" value="true" /> <!-- 在没有扩展名时即: "/blog/1" 时的默认展现形式 --> <property name="defaultContentType" value="text/html" /> <!-- 扩展名至mimeType的映射,即 /blog.json => application/json --> <property name="mediaTypes"> <map> <entry key="html" value="text/html" /> <entry key="pdf" value="application/pdf" /> <entry key="xsl" value="application/vnd.ms-excel" /> <entry key="xml" value="application/xml" /> <entry key="json" value="application/json" /> </map> </property> <!-- 用于开启 /blog/123?format=json 的支持 --> <property name="favorParameter" value="false" /> <property name="viewResolvers"> <list> <bean class="org.springframework.web.servlet.view.BeanNameViewResolver" /> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> <property name="prefix" value="/pages" /> <property name="suffix" value=".jsp"></property> </bean> </list> </property> <property name="defaultViews"> <list> <!-- for application/json --> <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" /> </list> </property> </bean>
参考:
juyon的blog:《spring3 MVC国际化支持之中文乱码》
Gary Mark等的书籍:《Spring Recipes》2ed
发表评论
-
Spring项目导出可运行的JAR
2013-09-05 20:01 16229一、在使用MAVEN的打包插件。 1.背景 ... -
Spring Security3实践总结
2013-07-22 18:12 19199在线项目最近要对管理系统进行细粒度的权限控 ... -
Spring中配置和读取多个Properties文件
2013-05-31 16:45 61517一个系统中通常会存在如下一些以Properties形式存在 ... -
Spring多数据源的配置和使用(2)
2012-11-22 11:40 18674本文以Spring2.5 + Hibernat ... -
Spring定时任务的多种使用方法总结
2012-08-04 17:34 10382这里使用的是Spring2.5,需要的jar包:sprin ... -
Spring多数据源的配置和使用(1)
2012-08-04 14:51 22572最近开发一个数据同步的小功能,需要从A主机的Ora ... -
Spring通过父类注入公用属性的技巧
2012-06-19 13:22 29705XML配置方式提取父类 在 ... -
Spring3 MVC
2012-04-24 17:16 0个人学习参考所用,勿喷! 1.搭建一个基于S ... -
Spring3 MVC的最佳实践和理解(9)
2012-04-25 09:10 2492个人学习参考所用,勿喷! 9.创建一个资源多种实现的 ... -
Spring3 MVC的最佳实践和理解(8)
2012-04-25 09:10 2285个人学习参考所用,勿喷! 8.Bean的注解式 ... -
Spring3 MVC的最佳实践和理解(7)
2012-04-25 09:09 4086个人学习参考所用, ... -
Spring3 MVC的最佳实践和理解(6)
2012-04-25 09:09 1993个人学习参考所用, ... -
Spring3 MVC的最佳实践和理解(4)
2012-04-24 16:59 4783个人学习参考所用,勿喷! 4.区域解析和外部化区 ... -
Spring3 MVC的最佳实践和理解(3)
2012-04-24 16:56 4473个人学习参考所用,勿喷! 3.使用拦截器 Sp ... -
Spring3 MVC的最佳实践和理解(2)
2012-04-24 16:55 5038个人学习参考所用,勿 ... -
Spring3 MVC的最佳实践和理解(1)
2012-04-24 16:53 3724个人学习参考所用,勿喷! 1.搭建一个基 ... -
Spring RESTful服务接收和返回JSON最佳实践
2012-04-16 17:13 108456个人学习参考所用,勿喷! 返回JSON ... -
Spring的JNDI数据源连接池配置示例及Spring对JNDI实现分析
2012-04-10 16:00 89421个人学习参考所用,勿喷! 在使用 Tomcat服 ... -
Spring属性注入和构造函数注入参考
2012-02-25 23:23 4380个人学习参考所用,勿喷! 1.Pojo如下: ...
相关推荐
SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您从零基础开始,逐步掌握SSM的核心技术和最佳实践,助您在Java Web开发领域更上一...
Spring教程合集.zip Spring开发指南 SpringGuide 在Spring中配置Hibernate事务 Struts+Spring+Hibernate开发实例 Struts+Hibernate+Spring练习 Struts+Spring+Hibernate快速入门 ...Spring Framework最佳实践
SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您从零基础开始,逐步掌握SSM的核心技术和最佳实践,助您在Java Web开发领域更上一...
SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您从零基础开始,逐步掌握SSM的核心技术和最佳实践,助您在Java Web开发领域更上一...
SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您从零基础开始,逐步掌握SSM的核心技术和最佳实践,助您在Java Web开发领域更上一...
SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您从零基础开始,逐步掌握SSM的核心技术和最佳实践,助您在Java Web开发领域更上一...
SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您从零基础开始,逐步掌握SSM的核心技术和最佳实践,助您在Java Web开发领域更上一...
SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您从零基础开始,逐步掌握SSM的核心技术和最佳实践,助您在Java Web开发领域更上一...
SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您从零基础开始,逐步掌握SSM的核心技术和最佳实践,助您在Java Web开发领域更上一...
你想掌握分析源代码的最佳实践吗?..., 本书赞誉:, 作为一个有近10年历史的成功框架,Spnng在Java开发中具有举足轻重的作用。本书从源代码分析入手,对Spring的架构原理和设计思想进行了全面剖析,不仅能让我们更...
SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您从零基础开始,逐步掌握SSM的核心技术和最佳实践,助您在Java Web开发领域更上一...
SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您从零基础开始,逐步掌握SSM的核心技术和最佳实践,助您在Java Web开发领域更上一...
SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您从零基础开始,逐步掌握SSM的核心技术和最佳实践,助您在Java Web开发领域更上一...
它详细介绍了Java编程中的有效实践和最佳实践,如何避免常见的错误和陷阱。 《深入理解Java虚拟机》:这本书是Java虚拟机编程的经典教材,适合中级和高级开发者。它详细介绍了Java虚拟机的原理和内部实现,以及如何...
通过实践,逐步掌握SSM框架的使用技巧和Java Web开发的最佳实践。 参考项目文件和笔记:项目文件和笔记提供了丰富的背景信息和开发经验。在学习的过程中,不妨参考这些资料,以帮助你更好地理解和学习。 动手实践:...
通过实践,逐步掌握SSM框架的使用技巧和Java Web开发的最佳实践。 参考项目文件和笔记:项目文件和笔记提供了丰富的背景信息和开发经验。在学习的过程中,不妨参考这些资料,以帮助你更好地理解和学习。 动手实践:...
通过实践,逐步掌握SSM框架的使用技巧和Java Web开发的最佳实践。 参考项目文件和笔记:项目文件和笔记提供了丰富的背景信息和开发经验。在学习的过程中,不妨参考这些资料,以帮助你更好地理解和学习。 动手实践:...
通过实践,逐步掌握SSM框架的使用技巧和Java Web开发的最佳实践。 参考项目文件和笔记:项目文件和笔记提供了丰富的背景信息和开发经验。在学习的过程中,不妨参考这些资料,以帮助你更好地理解和学习。 动手实践:...
通过实践,逐步掌握SSM框架的使用技巧和Java Web开发的最佳实践。 参考项目文件和笔记:项目文件和笔记提供了丰富的背景信息和开发经验。在学习的过程中,不妨参考这些资料,以帮助你更好地理解和学习。 动手实践:...
通过实践,逐步掌握SSM框架的使用技巧和Java Web开发的最佳实践。 参考项目文件和笔记:项目文件和笔记提供了丰富的背景信息和开发经验。在学习的过程中,不妨参考这些资料,以帮助你更好地理解和学习。 动手实践:...