Здравствуйте. Пытаюсь сделать вот что:
@RequestMapping(value = "/something")
@ResponseBody
public String helloWorld() {
return "Русский текст";
}
Страница принимает Примерно это:
??????? ?????
На странице кодировка UTF-8. Но даже если бы она и другой была бы, то были бы в любом случае не вопросительные знаки. Посоветуйте, пожалуйста, как исправить ситуацию.
Дополню вопрос: Очень странно получилось в такой ситуации:
@RequestMapping(value = "/something")
public ResponseEntity
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 не заработает, если поставите конвертер после этого объявления.
Комментариев нет:
Отправить комментарий