博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring-mvc 3.* 多视图解析配置实例 ContentNegotiatingViewResolver
阅读量:7076 次
发布时间:2019-06-28

本文共 5233 字,大约阅读时间需要 17 分钟。

一、起因 

    从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>  

转载于:https://www.cnblogs.com/weixupeng/p/8783316.html

你可能感兴趣的文章
js点击打开弹窗
查看>>
系统设计 consistent hashing
查看>>
元素拖放
查看>>
303. Range Sum Query - Immutable
查看>>
解决ajax 跨域请求问题
查看>>
Linux下进程描述(1)—进程控制块【转】
查看>>
【Gamma】Scrum Meeting 4
查看>>
设计模式:适配器模式(Adapter)
查看>>
Linux环境搭建及命令
查看>>
【人工智能】 火爆的机器学习和人工智能,为何在金融业四处碰壁?
查看>>
kafka术语
查看>>
mitmproxy
查看>>
kafa单机版环境搭建
查看>>
kettle报错收集
查看>>
Json
查看>>
分布式隐式事务
查看>>
python中的str.strip()的用法
查看>>
递归函数
查看>>
Shell 输入/输出重定向
查看>>
go package包的使用
查看>>