zoukankan      html  css  js  c++  java
  • spring-mvc 3.* 多视图解析配置实例 ContentNegotiatingViewResolver

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

    错误信息: 

    Java代码  收藏代码
    1. java.lang.String cannot be cast to org.springframework.http.MediaType  



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

    二、ContentNegotiatingViewResolver 解释 

    引用




    三、配置实例 
    1. spring 3.1.0 

    Xml代码  收藏代码
    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 

    Xml代码  收藏代码
    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 

    Xml代码  收藏代码
    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 (推荐) 

    Xml代码  收藏代码
      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>  
  • 相关阅读:
    04-老马jQuery教程-DOM节点操作及位置和大小
    03-老马jQuery教程-DOM操作
    02-老马jQuery教程-jQuery事件处理
    01-老马jQuery教程-jQuery入口函数及选择器
    08Vue.js快速入门-Vue综合实战项目
    09Vue.js快速入门-Vue入门之Vuex实战
    07Vue.js快速入门-Vue路由详解
    06Vue.js快速入门-Vue组件化开发
    整套高质量前端基础到高级视频教程免费发布
    05-Vue入门系列之Vue实例详解与生命周期
  • 原文地址:https://www.cnblogs.com/weixupeng/p/8783316.html
Copyright © 2011-2022 走看看