一、起因 
    从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. jquery-mobile pop

    一.弹框 代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...

  2. (转)MyBatis 一、二级缓存和自定义缓存

    1.一级缓存 MyBatis 默认开启了一级缓存,一级缓存是在SqlSession 层面进行缓存的.即,同一个SqlSession ,多次调用同一个Mapper和同一个方法的同一个参数, 只会进行一次 ...

  3. Mysterious Crime CodeForces - 1043D (思维+组合数学)

    Acingel is a small town. There was only one doctor here — Miss Ada. She was very friendly and nobody ...

  4. java高并发核心要点|系列5|CPU内存伪共享

    上节提到的:伪共享,今天我们来说说. 那什么是伪共享呢? 这得从CPU的缓存结构说起.以下如图,CPU一般来说是有三级缓存,1 级,2级,3级,越上面的,越靠近CPU的,速度越快,成本也越高.也就是说 ...

  5. git每次更新都需要输入账号密码,如何解决?

    //如果https请求pull每次都需要输入账号密码,则 git config --global credential.helper store   那么,在下一次更新,需要输入账号密码,然后git就 ...

  6. Mybatis 动态sql(转载)

    原文地址:http://www.cnblogs.com/dongying/p/4092662.html 传统的使用JDBC的方法,相信大家在组合复杂的的SQL语句的时候,需要去拼接,稍不注意哪怕少了个 ...

  7. CSS3书写规范

    css样式的书写顺序: 1.位置属性(position, top, right, z-index, display, float等) 2.大小(width, height, padding, marg ...

  8. sourceTree 添加 ssh key 方法

    1.使用 git 客户的生成公私钥:id_rsa.id_rsa.pub 1.1设置Git的user name和email: $ git config --global user.name " ...

  9. Gitlab+Jenkins+Docker实现net core持续集成

    前言 在项目中使用这一套自动集成的体系之后,一直想找个时间总结出来,用于自己记录也打算将自己的所得分享给园友们,不经常写文章,可能会有错误的地方,希望各位不吝指正,我会及时的改正并表示感谢,希望大家能 ...

  10. HDU-1083-Courses(最大匹配)

    链接: https://vjudge.net/problem/HDU-1083#author=HUCM201732 题意: 题目大意: 一共有N个学生跟P门课程,一个学生可以任意选一 门或多门课,问是 ...