私は注釈付きのSpring MVC Java Webアプリケーションを突堤Webサーバー(現在はMaven Jetty Plugin)で実行しています。
文字列ヘルプテキストだけを返す1つのコントローラーメソッドでAJAXサポートを実行しようとしています。リソースはUTF-8エンコーディングであり、文字列もそうですが、サーバーからの応答には
content-encoding: text/plain;charset=ISO-8859-1
ブラウザが送信したときでも
Accept-Charset windows-1250,utf-8;q=0.7,*;q=0.7
どういうわけか春のデフォルト構成を使用しています
このBeanを構成に追加するためのヒントを見つけましたが、エンコーディングをサポートしておらず、代わりにデフォルトのBeanが使用されているため、使用されていないと思います。
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes" value="text/plain;charset=UTF-8" />
</bean>
私のコントローラーコードは(この応答タイプの変更は私には機能しないことに注意してください):
@RequestMapping(value = "ajax/gethelp")
public @ResponseBody String handleGetHelp(Locale loc, String code, HttpServletResponse response) {
log.debug("Getting help for code: " + code);
response.setContentType("text/plain;charset=UTF-8");
String help = messageSource.getMessage(code, null, loc);
log.debug("Help is: " + help);
return help;
}