簡體   English   中英

如何將mappingJacksonHttpMessageConverter的內容類型從application / json; charset = UTF-8更改為application / json

[英]How to change content type of MappingJacksonHttpMessageConverter from application/json;charset=UTF-8 to application/json

我有一個Spring REST Web服務,在我的控制器中,我使用MappingJacksonHttpMessageConverter將我的返回模型轉換為JSON。 但是當我用firebug檢查它時,有Content-Type=application/json;charset=UTF-8

此外,我試圖通過使用spring android rest模板從Android客戶端解析此結果但我不斷得到:

無法提取響應:沒有為響應類型找到合適的HttpMessageConverter [xxx.SamplePageActivity $ Result]和內容類型application / json; charset = UTF-8]

可能是android客戶端上的MappingJacksonHttpMessageConverter完全期望類型application/json

所以我的問題是如何改變spring的MappingJacksonHttpMessageConverter從application/json;charset=UTF-8返回Content-Type application/json;charset=UTF-8application/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>

您可以使用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 ),您可以設置類型,子類型和字符集,訂購-

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM