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 サイトの他の関連記事を参照してください。