一、起因 
    从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上安装Eclipse

    之所以要在linux上安装Eclipse,是因为一开始我是通过Eclipse+MingW+Samba+GDBserver方式在Windows上远程操作,准备编译调试nginx源代码的,可是在编译调试过 ...

  2. 我所了解的https

    http大家多少都有些了解,毕竟要上网的话是肯定会接触到它的.http有个很明显的缺点,就是传输是明文的,很不安全.针对这个情况,就推出了https,也就是http+ssl/tls. 对于明文不安全的 ...

  3. JQuery 处理 微擎传递过去数据

    JQuery 处理 微擎传递过去数据 PS:微擎得到的数据大多数是数组(我们这里处理数组) 将数组使用 json_encode() 函数处理成 JSON 格式 前端在 script 中使用 引号 将变 ...

  4. vue项目中引入vant 使用rem布局问题

    postcss.config.js const autoprefixer = require('autoprefixer') const pxtorem = require('postcss-pxto ...

  5. java数据结构4--集合Set

    Set接口 Set接口用来表示:一个不包含“重复元素”的集合Set接口中并没有定义特殊的方法,其方法多数都和Collection接口相同. 重复元素的理解:通常理解:拥有相同成员变量的对象称为相同的对 ...

  6. 签发的用户认证token超时刷新策略

    https://segmentfault.com/a/1190000014545422

  7. spring boot2.0.2,<-1.4.8

    DataSourceBuilder cannot be resolved DataSourceBuilder cannot be resolved to a type RelaxedPropertyR ...

  8. QT 问题提问网站

    https://stackoverflow.com/questions/tagged/qt

  9. luoguP1514 引水入城 x

    P1514 引水入城 题目描述 在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠.该国的行政区划十分特殊,刚好构成一个N 行M 列的矩形,如上图所示,其中每个格子都代表一座城市,每座城 ...

  10. cpp 面向对象初步探索

    需求 尝试定义一个complex(复数类) 简略实现 headers/complex.h #ifndef __COMPLEX__ #define __COMPLEX__ class complex { ...