spring3 mvc 配置restful 内容协商

 restful思想中一个很牛的特行就是内容协商 

意思是根据请求参数决定响应的格式,如json xml等 

废话少说,直接上代码 
Java代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2.   
  3. <beans xmlns="http://www.springframework.org/schema/beans"    
  4.    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  5.    xmlns:context="http://www.springframework.org/schema/context"    
  6.    xsi:schemaLocation="http://www.springframework.org/schema/beans    
  7.             http://www.springframework.org/schema/beans/spring-beans-3.0.xsd    
  8.             http://www.springframework.org/schema/context    
  9.             http://www.springframework.org/schema/context/spring-context-3.0.xsd"   
  10.             default-autowire="byName">    
  11.   
  12.   
  13.   <context:component-scan base-package="com.h2h.business.web.controller, com.h2h.business.web.ajax" />  
  14.    
  15.     
  16.   <bean id="handlerAdapter" class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" >  
  17.     <property name="messageConverters">  
  18.          <list>  
  19.              <bean class = "org.springframework.http.converter.StringHttpMessageConverter">  
  20.                 <property name = "supportedMediaTypes">  
  21.                      <list>  
  22.                          <value>text/plain;charset=UTF-8</value>  
  23.                      </list>  
  24.                 </property>  
  25.              </bean>  
  26.          </list>  
  27.     </property>  
  28.   </bean>  
  29.     
  30.    
  31.   
  32. <!--   
  33.  <bean id="handlerMapping" class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">  
  34.     <property name="interceptors">  
  35.         <list>  
  36.             <bean class="com.h2h.web.interceptor.IfModifiedSinceInterceptor" />  
  37.         </list>  
  38.     </property>  
  39.   </bean>  
  40.     
  41.   <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">  
  42.        <property name="basename" value="messages"/>  
  43.   </bean>  
  44.   
  45.   <bean id="exceptionResolver" class="com.justel.idpro.web.springmvc.handler.ExceptionHandler">  
  46.     <property name="defaultErrorView" value="error"/>    
  47.   </bean>  
  48. -->  
  49.      
  50.     <!-- 总错误处理-->  
  51.     <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">  
  52.         <property name="defaultErrorView">    
  53.             <value>/500</value>  
  54.         </property>  
  55.         <property name="defaultStatusCode">    
  56.             <value>500</value>  
  57.         </property>  
  58.           
  59.     </bean>   
  60.   
  61.   
  62.   
  63.       
  64.     <bean id="multipartResolver"  
  65.         class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
  66.         <property name="maxUploadSize" value="3145728"/>  
  67.     </bean>  
  68.       
  69.       
  70. <!-- ====================================  以下是restful 内容协商的配置  ================================  -->    
  71.       
  72.     <!-- 根据客户端的不同的请求决定不同的view进行响应, 如 /blog/1.json /blog/1.xml -->  
  73.     <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">  
  74.         <!-- 设置为true以忽略对Accept Header的支持-->  
  75.         <property name="ignoreAcceptHeader" value="true"/>  
  76.         <!-- 在没有扩展名时即: "/user/1" 时的默认展现形式 -->  
  77.         <property name="defaultContentType" value="text/html"/>  
  78.         <!-- 扩展名至mimeType的映射,即 /user.json => application/json -->  
  79.         <property name="mediaTypes">  
  80.             <map>  
  81.                 <entry key="json" value="application/json" />  
  82.                 <entry key="xml" value="application/xml" />  
  83.             </map>  
  84.         </property>  
  85.         <!-- 用于开启 /userinfo/123?format=json 的支持 -->  
  86.         <property name="favorParameter" value="false"/>  
  87.         <property name="viewResolvers">  
  88.             <list>  
  89.                 <bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />  
  90.                 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
  91.                    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>  
  92.                    <property name="prefix" value="/pages"/>  
  93.                    <property name="suffix" value=".jsp"/>  
  94.                </bean>  
  95.             </list>  
  96.         </property>  
  97.         <property name="defaultViews">  
  98.             <list>  
  99.                 <!-- for application/json -->  
  100.                 <!-- <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />  -->  
  101.                   
  102.                 <!-- for application/xml -->  
  103.                 <bean class="org.springframework.web.servlet.view.xml.MarshallingView" >  
  104.                     <property name="modelKey" value="toBeMarshalled"/>  
  105.                     <property name="marshaller">  
  106.                         <bean class="org.springframework.oxm.xstream.XStreamMarshaller">  
  107.                             <property name="annotatedClasses">  
  108.                                 <list>  
  109.                                     <value>com.h2h.business.domain.Company</value>  
  110.                                 </list>  
  111.                             </property>  
  112.                         </bean>  
  113.                     </property>  
  114.                 </bean>  
  115.                   
  116.             </list>  
  117.         </property>  
  118.     </bean>  
  119.       
  120.     
  121. </beans>  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值