首頁 > Java > java教程 > 主體

如何在 Spring MVC 中使用 @ResponseBody 控制回應的內容類型?

Barbara Streisand
發布: 2024-10-28 05:13:30
原創
373 人瀏覽過

How can I control the content type of the response with @ResponseBody in Spring MVC?

@ResponseBody 屬性:在Spring MVC 中控制回應內容類型

在Spring MVC 中,@ResponseBody 註解在確定回應的內容類型方面起著至關重要的作用發送回客戶端。當以靈活的方式傳回自訂回應(例如 JSON 或純文字)時,此註解非常有用。

在您的情況下,您遇到了控制器方法的回應被設定為錯誤的問題內容編碼。這是由於 Spring MVC 的預設行為造成的,如果沒有為回傳值找到合適的轉換器,它會回退到 ISO-8859-1 編碼。

要解決此問題並設定正確的編碼內容類型,您可以利用 @ResponseBody 註解的 Produces 屬性。此屬性可讓您指定控制器方法可以產生的媒體類型(即內容類型)。

對於您的特定情況,您希望控制器方法以 UTF-8 編碼產生純文字。以下是實現此目的的方法:

<code class="java">@RequestMapping(value = "ajax/gethelp")
@ResponseBody
public String handleGetHelp(Locale loc, String code) {
    log.debug("Getting help for code: " + code);
    String help = messageSource.getMessage(code, null, loc);
    log.debug("Help is: " + help);
    return help;
}</code>
登入後複製

透過將Produces = "text/plain; charset=utf-8" 新增至@ResponseBody 註釋,您可以指示Spring MVC 明確設定對字元集為utf-8 的text/plain 的回應。這應該確保回應被正確編碼並在客戶端正確顯示。

注意,@RequestMapping 註解也支援 Produces 屬性,可用於控制對應請求對應可以的媒體類型手把。

以上是如何在 Spring MVC 中使用 @ResponseBody 控制回應的內容類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板