2011-04-20 54 views
4

我有一個spring REST web服務,在我的控制器中我使用MappingJacksonHttpMessageConverter將我的返回模型轉換爲JSON。但是當我用firebug檢查它時,有Content-Type=application/json;charset=UTF-8如何將MappingJacksonHttpMessageConverter的內容類型從application/json; charset = UTF-8更改爲application/json

而且我想用彈簧的Android休息模板來自Android客戶端解析這個結果,但我不斷收到:

無法提取響應:沒有 適合HttpMessageConverter發現 爲響應類型 [XXX .SamplePageActivity $結果]和 內容類型 應用/ JSON;字符集= UTF-8]

它也許的情況下MappingJacksonHttpMessageConverter在機器人客戶端期望準確的類型application/json

所以我的問題是如何將spring的MappingJacksonHttpMessageConverter的返回內容類型從application/json;charset=UTF-8更改爲application/json

這是我的視圖解析器配置。這也許是有用的:

<beans:bean 
    class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> 
    <beans:property name="mediaTypes"> 
     <beans:map> 
      <beans:entry key="html" value="text/html" /> 
      <beans:entry key="json" value="application/json" /> 
     </beans:map> 
    </beans:property> 

    <beans:property name="viewResolvers"> 
     <beans:list> 
      <beans:bean 
       class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
       <beans:property name="prefix" value="/WEB-INF/views/" /> 
       <beans:property name="suffix" value="${dispatcher.suffix}" /> 
      </beans:bean> 
     </beans:list> 
    </beans:property> 

    <beans:property name="defaultViews"> 
     <beans:list> 
      <beans:bean 
       class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" /> 
     </beans:list> 
    </beans:property> 
</beans:bean> 

<beans:bean id="messageAdapter" 
    class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> 
    <beans:property name="messageConverters"> 
     <beans:list> 
      <!-- Support JSON --> 
      <beans:bean 
       class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" /> 
     </beans:list> 
    </beans:property> 
</beans:bean> 

回答

3

可以使用supportedMediaTypes屬性更精確地配置MappingJacksonHttpMessageConverter,像這樣:

<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" > 
        <property name="supportedMediaTypes"> 
         <list> 
          <bean class="org.springframework.http.MediaType"> 
          <constructor-arg value="application" /> 
          <constructor-arg value="json" /> 
          <constructor-arg value="#{T(java.nio.charset.Charset).forName('UTF-8')}"/> 
          </bean> 
         </list> 
        </property> 
      </bean> 

,而根據文檔(http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/http/MediaType.html)允許您設置的類型,子類型和charset,按順序 -

相關問題