ホームページ  >  記事  >  Java  >  Spring MVC で @ResponseBody を使用して応答のコンテンツ タイプを制御するにはどうすればよいですか?

Spring MVC で @ResponseBody を使用して応答のコンテンツ タイプを制御するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-28 05:13:30283ブラウズ

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

@ResponseBody 属性: Spring MVC でのレスポンス Content-Type の制御

Spring MVC では、@ResponseBody アノテーションはレスポンスのコンテンツ タイプを決定する際に重要な役割を果たします。クライアントに返送されます。このアノテーションは、JSON やプレーン テキストなどのカスタム応答を柔軟な方法で返す場合に役立ちます。

あなたの場合、コントローラー メソッドからの応答が正しく設定されていないという問題が発生しています。コンテンツのエンコーディング。これは Spring MVC のデフォルトの動作によるもので、戻り値に適したコンバータが見つからない場合は ISO-8859-1 エンコーディングにフォールバックします。

この問題を解決し、正しいコンバータを設定するにはコンテンツ タイプでは、@ResponseBody アノテーションの generated 属性を利用できます。この属性を使用すると、コントローラー メソッドが生成できるメディア タイプ (つまり、コンテンツ タイプ) を指定できます。

特定のケースでは、コントローラー メソッドで 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>

プロデュース = "text/plain; charset=utf-8" を @ResponseBody アノテーションに追加することで、Spring MVC にコンテンツ タイプを明示的に設定するように指示します。 utf-8 の文字セットを使用した text/plain への応答。これにより、レスポンスが正しくエンコードされ、クライアント側で適切に表示されることが保証されます。

@RequestMapping アノテーションは、対応するリクエスト マッピングで使用できるメディア タイプを制御するために使用できる、Producer 属性もサポートしていることに注意してください。ハンドル。

以上がSpring MVC で @ResponseBody を使用して応答のコンテンツ タイプを制御するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。