spring-mvc 3.* 多视图解析配置实例 ContentNegotiatingViewResolver
一、起因
从spring 3.1.0升级到spring 3.2.0时,配置文件servlet.xml中出错。
错误信息:
- java.lang.String cannot be cast to org.springframework.http.MediaType
错误原因:是spring3.2开始不推荐使用setMediaTypes等直接设置这些数据, 而是通过ContentNegotiationManager(ContentNegotiationManagerFactoryBean),所以采用map标签的方式直接转换会出现异常信息。
二、ContentNegotiatingViewResolver 解释
三、配置实例
1. spring 3.1.0
- <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
- <property name="ignoreAcceptHeader" value="true"/>
- <property name="defaultContentType" value="text/html"/>
- <property name="mediaTypes">
- <map>
- <entry key="json" value="application/json" />
- <entry key="xml" value="application/xml" />
- </map>
- </property>
- <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="/WEB-INF/pages/"/>
- <property name="suffix" value=".jsp"></property>
- </bean>
- </list>
- </property>
- <property name="defaultViews">
- <list>
- <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
- <bean class="org.springframework.web.servlet.view.xml.MarshallingView" >
- <property name="marshaller">
- <bean class="org.springframework.oxm.xstream.XStreamMarshaller"/>
- </property>
- </bean>
- </list>
- </property>
- </bean>
2. spring 3.1.0/3.2.0
- <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
- <property name="ignoreAcceptHeader" value="true"/>
- <property name="defaultContentType" value="text/html"/>
- <property name="mediaTypes">
- <value>
- json=application/json,
- xml=application/xml
- </value>
- </property>
- <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="/WEB-INF/pages/"/>
- <property name="suffix" value=".jsp"></property>
- </bean>
- </list>
- </property>
- <property name="defaultViews">
- <list>
- <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
- <bean class="org.springframework.web.servlet.view.xml.MarshallingView" >
- <property name="marshaller">
- <bean class="org.springframework.oxm.xstream.XStreamMarshaller"/>
- </property>
- </bean>
- </list>
- </property>
- </bean>
3. spring 3.2.0
- <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
- <property name="ignoreAcceptHeader" value="true"/>
- <property name="defaultContentType" value="text/html"/>
- <property name="contentNegotiationManager">
- <bean class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
- <property name="ignoreAcceptHeader" value="true"/>
- <property name="defaultContentType" value="text/html"/>
- <property name="mediaTypes">
- <map>
- <entry key="json" value="application/json" />
- <entry key="xml" value="application/xml" />
- </map>
- </property>
- </bean>
- </property>
- <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="/WEB-INF/pages/"/>
- <property name="suffix" value=".jsp"></property>
- </bean>
- </list>
- </property>
- <property name="defaultViews">
- <list>
- <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
- <bean class="org.springframework.web.servlet.view.xml.MarshallingView" >
- <property name="marshaller">
- <bean class="org.springframework.oxm.xstream.XStreamMarshaller"/>
- </property>
- </bean>
- </list>
- </property>
- </bean>
4. spring 3.2.x (推荐)
- <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
- <property name="ignoreAcceptHeader" value="true"/>
- <property name="defaultContentType" value="text/html"/>
- <property name="contentNegotiationManager">
- <bean class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
- <property name="ignoreAcceptHeader" value="true"/>
- <property name="defaultContentType" value="text/html"/>
- <property name="mediaTypes">
- <props>
- <prop key="json">application/json</prop>
- <prop key="xml">application/xml</prop>
- </props>
- </property>
- </bean>
- </property>
- <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="/WEB-INF/pages/"/>
- <property name="suffix" value=".jsp"></property>
- </bean>
- </list>
- </property>
- <property name="defaultViews">
- <list>
- <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
- <bean class="org.springframework.web.servlet.view.xml.MarshallingView" >
- <property name="marshaller">
- <bean class="org.springframework.oxm.xstream.XStreamMarshaller"/>
- </property>
- </bean>
- </list>
- </property>
- </bean>
spring-mvc 3.* 多视图解析配置实例 ContentNegotiatingViewResolver的更多相关文章
- spring mvc:内部资源视图解析器2(注解实现)@Controller/@RequestMapping
spring mvc:内部资源视图解析器2(注解实现) @Controller/@RequestMapping 访问地址: http://localhost:8080/guga2/hello/goo ...
- spring mvc:内部资源视图解析器(注解实现)@Controller/@RequestMapping
spring mvc:内部资源视图解析器(注解实现)@Controller/@RequestMapping 项目访问地址: http://localhost:8080/guga2/hello/prin ...
- Spring MVC资源绑定视图解析器
ResourceBundleViewResolver使用属性文件中定义的视图bean来解析视图名称. 以下示例显示如何使用Spring Web MVC框架中的ResourceBundleViewRes ...
- spring mvc: 资源绑定视图解析器(不推荐)
spring mvc: 资源绑定视图解析器(不推荐) 不适合单控制器多方法访问,有知道的兄弟能否告知. 访问地址: http://localhost:8080/guga2/hello/index 项目 ...
- Spring MVC的多视图解析器配置及与Freemarker的集成
一.从freemarker谈起 Freemarker使用模板技术进行视图的渲染.自从看了Struts标签.Freemarker.JSTL的性能对比后,我毅然决定放弃Struts标签了!效率太差…… S ...
- Spring MVC内部资源视图解析器
InternalResourceViewResolver用于将提供的URI解析为实际URI.下面的示例演示如何在Spring Web MVC框架中使用SpringResultViewResolver. ...
- Spring MVC开发环境的搭建和实例
一.安装jdk 二.安装tomcat 三.安装maven 新增环境变量MAVEN-HOME,并在path变量中添加bin路径 四.安装IntelliJ IDEA 五.创建maven web项目选择jd ...
- 转载 Spring、Spring MVC、MyBatis整合文件配置详解
Spring.Spring MVC.MyBatis整合文件配置详解 使用SSM框架做了几个小项目了,感觉还不错是时候总结一下了.先总结一下SSM整合的文件配置.其实具体的用法最好还是看官方文档. ...
- Spring MVC 数据模型与视图
从控制器获取数据后,会装载数据到数据模型和视图中,然后将视图名称转发到视图解析器中,通过解析器解析后得到最终视图,最后将数据模型渲染到视图中,展示最终的结果给用户. 用ModelAndView来定 ...
随机推荐
- apache 修改文件上传大小限制
Windows 环境下的修改方法 ================================================================ 第一步:修改在php5下POST文件 ...
- 2019.10.17 CCSP自闭打铜
很幸运被珠姐第二次抓过来参加CCSP(第二次看xmk夺冠),不过今年的题目还是那么让人心肌梗塞呢(听题解的时候基本都能听懂也算是进步了8). 比赛前一天晚上躺在宾馆里,做梦梦见自己在打比赛,局面应该是 ...
- php随机获取数组里面的值
srand() 函数播下随机数发生器种子,array_rand() 函数从数组中随机选出一个或多个元素,并返回.第二个参数用来确定要选出几个元素.如果选出的元素不止一个,则返回包含随机键名的数组,否则 ...
- Python核心编程正则表达式练习题1-1 识别后续的字符串:“bat”、“bit”、“but”、“hat”、“hit”或者“hut”
# 1-1 识别后续的字符串:“bat”.“bit”.“but”.“hat”.“hit”或者“hut”. import re # 正则表达式,|元字符表示选择“或” # character = 'ba ...
- app 进入后台进行模糊处理
金融类app防止信息在后台中被一些恶意截屏软件进行截屏,对进入后台的app做模糊处理 - (void)applicationWillResignActive:(UIApplication *)appl ...
- 【洛谷P4677】山区建小学
题目大意:给定一个长度为 N 的序列,现选出 M 个点组成一个集合,求这 N 个点到这个集合的最近距离的和是多少. 题解: 状态设计为 dp[i][j] 表示前 i 个点中选出 j 个点的最近距离和是 ...
- MyEclipse使用教程:使用主题自定义工作台外观
[MyEclipse CI 2019.4.0安装包下载] 您可以通过选择Window>Preferences>General>Appearance来使用主题自定义的工作台外观,可以从 ...
- Codeforces Round #569 (Div. 2) C. Valeriy and Deque
链接: https://codeforces.com/contest/1180/problem/C 题意: Recently, on the course of algorithms and data ...
- 【Spring】Spring-Session-Data-Redis实现session共享
前言 在开发中遇到一个关于用户体验的问题,每次当运维进行更新重启服务器时,都会导致会员平台中已登录的用户掉线.这是因为每个用户的会话信息及状态都是由session来保存的,而session对象是由服务 ...
- 第十二章 学习 shell脚本之前的基础知识
http://www.92csz.com/study/linux/12.htm [什么是shell] 简单点理解,就是系统跟计算机硬件交互时使用的中间介质,它只是系统的一个工具.实际上,在shell和 ...