一、起因 
    从spring 3.1.0升级到spring 3.2.0时,配置文件servlet.xml中出错。

错误信息:

  1. java.lang.String cannot be cast to org.springframework.http.MediaType

错误原因:是spring3.2开始不推荐使用setMediaTypes等直接设置这些数据, 而是通过ContentNegotiationManager(ContentNegotiationManagerFactoryBean),所以采用map标签的方式直接转换会出现异常信息。

二、ContentNegotiatingViewResolver 解释

引用

三、配置实例 
1. spring 3.1.0

  1. <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
  2. <property name="ignoreAcceptHeader" value="true"/>
  3. <property name="defaultContentType" value="text/html"/>
  4. <property name="mediaTypes">
  5. <map>
  6. <entry key="json" value="application/json" />
  7. <entry key="xml" value="application/xml" />
  8. </map>
  9. </property>
  10. <property name="viewResolvers">
  11. <list>
  12. <bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />
  13. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  14. <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
  15. <property name="prefix" value="/WEB-INF/pages/"/>
  16. <property name="suffix" value=".jsp"></property>
  17. </bean>
  18. </list>
  19. </property>
  20. <property name="defaultViews">
  21. <list>
  22. <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
  23. <bean class="org.springframework.web.servlet.view.xml.MarshallingView" >
  24. <property name="marshaller">
  25. <bean class="org.springframework.oxm.xstream.XStreamMarshaller"/>
  26. </property>
  27. </bean>
  28. </list>
  29. </property>
  30. </bean>

2. spring 3.1.0/3.2.0

  1. <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
  2. <property name="ignoreAcceptHeader" value="true"/>
  3. <property name="defaultContentType" value="text/html"/>
  4. <property name="mediaTypes">
  5. <value>
  6. json=application/json,
  7. xml=application/xml
  8. </value>
  9. </property>
  10. <property name="viewResolvers">
  11. <list>
  12. <bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />
  13. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  14. <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
  15. <property name="prefix" value="/WEB-INF/pages/"/>
  16. <property name="suffix" value=".jsp"></property>
  17. </bean>
  18. </list>
  19. </property>
  20. <property name="defaultViews">
  21. <list>
  22. <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
  23. <bean class="org.springframework.web.servlet.view.xml.MarshallingView" >
  24. <property name="marshaller">
  25. <bean class="org.springframework.oxm.xstream.XStreamMarshaller"/>
  26. </property>
  27. </bean>
  28. </list>
  29. </property>
  30. </bean>

3. spring 3.2.0

  1. <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
  2. <property name="ignoreAcceptHeader" value="true"/>
  3. <property name="defaultContentType" value="text/html"/>
  4. <property name="contentNegotiationManager">
  5. <bean class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
  6. <property name="ignoreAcceptHeader" value="true"/>
  7. <property name="defaultContentType" value="text/html"/>
  8. <property name="mediaTypes">
  9. <map>
  10. <entry key="json" value="application/json" />
  11. <entry key="xml" value="application/xml" />
  12. </map>
  13. </property>
  14. </bean>
  15. </property>
  16. <property name="viewResolvers">
  17. <list>
  18. <bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />
  19. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  20. <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
  21. <property name="prefix" value="/WEB-INF/pages/"/>
  22. <property name="suffix" value=".jsp"></property>
  23. </bean>
  24. </list>
  25. </property>
  26. <property name="defaultViews">
  27. <list>
  28. <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
  29. <bean class="org.springframework.web.servlet.view.xml.MarshallingView" >
  30. <property name="marshaller">
  31. <bean class="org.springframework.oxm.xstream.XStreamMarshaller"/>
  32. </property>
  33. </bean>
  34. </list>
  35. </property>
  36. </bean>

4. spring 3.2.x (推荐)

    1. <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
    2. <property name="ignoreAcceptHeader" value="true"/>
    3. <property name="defaultContentType" value="text/html"/>
    4. <property name="contentNegotiationManager">
    5. <bean class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
    6. <property name="ignoreAcceptHeader" value="true"/>
    7. <property name="defaultContentType" value="text/html"/>
    8. <property name="mediaTypes">
    9. <props>
    10. <prop key="json">application/json</prop>
    11. <prop key="xml">application/xml</prop>
    12. </props>
    13. </property>
    14. </bean>
    15. </property>
    16. <property name="viewResolvers">
    17. <list>
    18. <bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />
    19. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    20. <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    21. <property name="prefix" value="/WEB-INF/pages/"/>
    22. <property name="suffix" value=".jsp"></property>
    23. </bean>
    24. </list>
    25. </property>
    26. <property name="defaultViews">
    27. <list>
    28. <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
    29. <bean class="org.springframework.web.servlet.view.xml.MarshallingView" >
    30. <property name="marshaller">
    31. <bean class="org.springframework.oxm.xstream.XStreamMarshaller"/>
    32. </property>
    33. </bean>
    34. </list>
    35. </property>
    36. </bean>

spring-mvc 3.* 多视图解析配置实例 ContentNegotiatingViewResolver的更多相关文章

  1. spring mvc:内部资源视图解析器2(注解实现)@Controller/@RequestMapping

    spring mvc:内部资源视图解析器2(注解实现)  @Controller/@RequestMapping 访问地址: http://localhost:8080/guga2/hello/goo ...

  2. spring mvc:内部资源视图解析器(注解实现)@Controller/@RequestMapping

    spring mvc:内部资源视图解析器(注解实现)@Controller/@RequestMapping 项目访问地址: http://localhost:8080/guga2/hello/prin ...

  3. Spring MVC资源绑定视图解析器

    ResourceBundleViewResolver使用属性文件中定义的视图bean来解析视图名称. 以下示例显示如何使用Spring Web MVC框架中的ResourceBundleViewRes ...

  4. spring mvc: 资源绑定视图解析器(不推荐)

    spring mvc: 资源绑定视图解析器(不推荐) 不适合单控制器多方法访问,有知道的兄弟能否告知. 访问地址: http://localhost:8080/guga2/hello/index 项目 ...

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

    一.从freemarker谈起 Freemarker使用模板技术进行视图的渲染.自从看了Struts标签.Freemarker.JSTL的性能对比后,我毅然决定放弃Struts标签了!效率太差…… S ...

  6. Spring MVC内部资源视图解析器

    InternalResourceViewResolver用于将提供的URI解析为实际URI.下面的示例演示如何在Spring Web MVC框架中使用SpringResultViewResolver. ...

  7. Spring MVC开发环境的搭建和实例

    一.安装jdk 二.安装tomcat 三.安装maven 新增环境变量MAVEN-HOME,并在path变量中添加bin路径 四.安装IntelliJ IDEA 五.创建maven web项目选择jd ...

  8. 转载 Spring、Spring MVC、MyBatis整合文件配置详解

    Spring.Spring MVC.MyBatis整合文件配置详解   使用SSM框架做了几个小项目了,感觉还不错是时候总结一下了.先总结一下SSM整合的文件配置.其实具体的用法最好还是看官方文档. ...

  9. Spring MVC 数据模型与视图

      从控制器获取数据后,会装载数据到数据模型和视图中,然后将视图名称转发到视图解析器中,通过解析器解析后得到最终视图,最后将数据模型渲染到视图中,展示最终的结果给用户. 用ModelAndView来定 ...

随机推荐

  1. apache 修改文件上传大小限制

    Windows 环境下的修改方法 ================================================================ 第一步:修改在php5下POST文件 ...

  2. 2019.10.17 CCSP自闭打铜

    很幸运被珠姐第二次抓过来参加CCSP(第二次看xmk夺冠),不过今年的题目还是那么让人心肌梗塞呢(听题解的时候基本都能听懂也算是进步了8). 比赛前一天晚上躺在宾馆里,做梦梦见自己在打比赛,局面应该是 ...

  3. php随机获取数组里面的值

    srand() 函数播下随机数发生器种子,array_rand() 函数从数组中随机选出一个或多个元素,并返回.第二个参数用来确定要选出几个元素.如果选出的元素不止一个,则返回包含随机键名的数组,否则 ...

  4. Python核心编程正则表达式练习题1-1 识别后续的字符串:“bat”、“bit”、“but”、“hat”、“hit”或者“hut”

    # 1-1 识别后续的字符串:“bat”.“bit”.“but”.“hat”.“hit”或者“hut”. import re # 正则表达式,|元字符表示选择“或” # character = 'ba ...

  5. app 进入后台进行模糊处理

    金融类app防止信息在后台中被一些恶意截屏软件进行截屏,对进入后台的app做模糊处理 - (void)applicationWillResignActive:(UIApplication *)appl ...

  6. 【洛谷P4677】山区建小学

    题目大意:给定一个长度为 N 的序列,现选出 M 个点组成一个集合,求这 N 个点到这个集合的最近距离的和是多少. 题解: 状态设计为 dp[i][j] 表示前 i 个点中选出 j 个点的最近距离和是 ...

  7. MyEclipse使用教程:使用主题自定义工作台外观

    [MyEclipse CI 2019.4.0安装包下载] 您可以通过选择Window>Preferences>General>Appearance来使用主题自定义的工作台外观,可以从 ...

  8. Codeforces Round #569 (Div. 2) C. Valeriy and Deque

    链接: https://codeforces.com/contest/1180/problem/C 题意: Recently, on the course of algorithms and data ...

  9. 【Spring】Spring-Session-Data-Redis实现session共享

    前言 在开发中遇到一个关于用户体验的问题,每次当运维进行更新重启服务器时,都会导致会员平台中已登录的用户掉线.这是因为每个用户的会话信息及状态都是由session来保存的,而session对象是由服务 ...

  10. 第十二章 学习 shell脚本之前的基础知识

    http://www.92csz.com/study/linux/12.htm [什么是shell] 简单点理解,就是系统跟计算机硬件交互时使用的中间介质,它只是系统的一个工具.实际上,在shell和 ...