Mam w mojej aplikacji internetowej Spring MVC Java opartej na adnotacjach uruchomionej na serwerze internetowym jetty (obecnie we wtyczce maven jetty).
Próbuję zrobić wsparcie AJAX z jedną metodą kontrolera zwracającą tylko tekst pomocy typu String. Zasoby są w kodowaniu UTF-8, podobnie jak łańcuch, ale moja odpowiedź z serwera jest dołączona
content-encoding: text/plain;charset=ISO-8859-1
nawet gdy moja przeglądarka wysyła
Accept-Charset windows-1250,utf-8;q=0.7,*;q=0.7
Jakoś używam domyślnej konfiguracji sprężyny
Znalazłem wskazówkę, aby dodać tę fasolę do konfiguracji, ale myślę, że po prostu nie jest używana, ponieważ mówi, że nie obsługuje kodowania i zamiast tego używana jest domyślna.
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes" value="text/plain;charset=UTF-8" />
</bean>
Mój kod kontrolera to (zauważ, że ta zmiana typu odpowiedzi nie działa dla mnie):
@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;
}