首頁 > Java > java教程 > 主體

如何解決 Spring MVC 的 @ResponseBody 的內容類型差異?

DDD
發布: 2024-10-30 01:26:28
原創
764 人瀏覽過

How to Resolve Content-Type Discrepancies with Spring MVC's @ResponseBody?

解決與Spring MVC 的@ResponseBody 的內容類型差異

在Spring MVC 應用程式中,當控制器方法返回String 並註釋為@ResponseBody,框架負責設定回應的內容類型。預設情況下,它使用 UTF-8 編碼的“text/plain”。

自訂Content-Type

要覆寫預設內容類型,您可以包含在Spring 應用程式中進行以下設定:

<code class="xml"><bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
    <property name="messageConverters">
        <list>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <property name="supportedMediaTypes" value="text/plain;charset=UTF-8" />
            </bean>
        </list>
    </property>
</bean></code>
登入後複製

這將確保從@ResponseBody 方法傳回的字串使用指定的內容類型。然而,這種方法並不總是有效。

使用 Produces 屬性

Spring 3.1 在 RequestMapping 註解中引入了 Produces 屬性。透過指定 Produces = "application/json; charset=utf-8",您可以明確設定回應的內容類型。

範例控制器:

<code class="java">@RequestMapping(value = "/getDealers", method = RequestMethod.GET,
        produces = "application/json; charset=utf-8")
@ResponseBody
public String sendMobileData() {
    return "...";
}</code>
登入後複製

此方法使用產生屬性來覆寫預設的內容類型行為並確保回應包含正確的編碼。

以上是如何解決 Spring MVC 的 @ResponseBody 的內容類型差異?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!