Страницы

Поиск по вопросам

суббота, 27 октября 2018 г.

Проблемы с кодировкой в Spring 3 MVC

Здравствуйте. Пытаюсь сделать вот что: @RequestMapping(value = "/something") @ResponseBody public String helloWorld() { return "Русский текст"; } Страница принимает Примерно это: ??????? ????? На странице кодировка UTF-8. Но даже если бы она и другой была бы, то были бы в любом случае не вопросительные знаки. Посоветуйте, пожалуйста, как исправить ситуацию. Дополню вопрос: Очень странно получилось в такой ситуации: @RequestMapping(value = "/something") public ResponseEntity helloWorld() { MyCls cls = new MyCls(); cls.setStr("Русский текст");
HttpHeaders h = new HttpHeaders(); return new ResponseEntity(cls, h, HttpStatus.OK); } Сейчас сработало так, как я и ожидал: {"str":"Русский текст"} У спринга что, на тип String аллергия?


Ответ

Похоже, это известная проблема (аналогичный вопрос на SO, баг в джире), решается она несколькими способами:
так, как указал @Nofate - использовать ResponseEntity с соответствующими заголовками; добавить конвертер в hw-servlet.xml (код ниже); забабахать свой конвертер с блекдж... (как тут).
Сконфигурированный конвертер:

В ответе на SO говорится, что второй метод не сработает с mvc:annotation-driven - не знаю, у меня заработало и с ним.

UPD. Ага, с mvc:annotation-driven не заработает, если поставите конвертер после этого объявления.

Комментариев нет:

Отправить комментарий