一、起因 
    从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. Linux之RedHat7如何更换yum源

    目前,我们常见的系统大概就是Windows.Linux和Mac OS了.Windows系统应该是大部分人最早开始接触的系统,毕竟Windows系统使用起来相当方便,只需要点点鼠标,外加会简单的打字,一 ...

  2. Scrapy-redis分布式+Scrapy-redis实战

    [学习目标] Scrapy-redis分布式的运行流程 Scheduler与Scrapy自带的Scheduler有什么区别 Duplication Filter作用 源码自带三种spider的使用 6 ...

  3. Uva 10054 欧拉回路 打印路径

    看是否有欧拉回路 有的话打印路径 欧拉回路存在的条件: 如果是有向图的话 1.底图必须是连通图 2.最多有两个点的入度不等于出度 且一个点的入度=出度+1 一个点的入度=出度-1 如果是无向图的话 1 ...

  4. SugarCRM开发入门

    SugarCRM官网下载地址:https://sourceforge.net/projects/sugarcrm/ 概述 Sugar最初是基于LAMP(Linux.Apache.MySQL和PHP)运 ...

  5. FCC 成都社区·前端周刊 第 3 期

    01. Chrome65 的新功能 CSS Paint API 允许使用编程方式生成图像:Server Timing API允许服务器将时间信息通过HTTP headers传递给浏览器: CSS di ...

  6. ZROI 19.08.02 计算几何

    1.向量基础知识 \(atan2\)可以求极角,但是不是特别精确,在坐标接近\(10^{9}\)时会出锅,安全的做法是叉积. 旋转.反射和平移等都可以抽象为矩阵,即,它们可以复合.(需要一些必修四知识 ...

  7. 【UOJ#450】[集训队作业2018] 复读机

    题目链接 题目描述 群里有\(k\)个不同的复读机.为了庆祝平安夜的到来,在接下来的\(n\)秒内,它们每秒钟都会选出一位优秀的复读机进行复读.非常滑稽的是,一个复读机只有总共复读了\(d\)的倍数次 ...

  8. CPC/CPM/CPA/CPS定义

    CPC 每点击次数计费   CPM 每千人次展现计费   CPA 每行动成果计费(比如推广成功一个用户)   CPS 淘宝客类型,按照商品佣金,推广成功计费

  9. 通过源码安装PostgresSQL

    通过源码安装PostgresSQL 1.1 下载源码包环境: Centos6.8 64位 yum -y install bison flex readline-devel zlib-devel yum ...

  10. 从fileGDB中获取List

    /// <summary> /// 从FGDB中获取 /// </summary> /// <param name="fileGDBPath"> ...