Здравствуйте.
Делаю пет-проект в виде CRUD-веб-приложения - англо-русский словарь.
На беке - джава.
На фронте чистый хтмл, сформированный freemarker.
Применяю Spring mvc.
Ввожу в форму данные - текст на русском, проверяю, что приходит на контроллер, а там кракозябры всякие.
Вот скриншот.
Вот что в ИДЕИ отображается во время дебага. Брейкпоинт стоит как раз на контроллере, который перехватывает этот запрос.
Все страницы у меня на utf-8. Дополнительно это ставил в конфигурации спринга:
@Bean
public ViewResolver getViewResolver() {
FreeMarkerViewResolver freeMarkerViewResolver = new FreeMarkerViewResolver();
freeMarkerViewResolver.setOrder(1);
freeMarkerViewResolver.setPrefix("");
freeMarkerViewResolver.setSuffix(".ftl");
freeMarkerViewResolver.setContentType("text/html; charset=UTF-8");
return freeMarkerViewResolver;
}
@Bean
public FreeMarkerConfigurer getFreeMarkerConfigurer() {
FreeMarkerConfigurer freeMarkerConfigurer = new FreeMarkerConfigurer();
freeMarkerConfigurer.setTemplateLoaderPaths("/", "/WEB-INF/views/");
freeMarkerConfigurer.setDefaultEncoding("UTF-8");
return freeMarkerConfigurer;
}
Сама страница, откуда отправляю данные:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Добавление нового слова</title>
</head>
<body>
<h1>Добавление нового слова</h1>
<form name="record" action="/my-web-dictionary/dictionary-add-word/" method="post" accept-charset="UTF-8">
Слово:<br>
<input title="Слово" type="text" name="word" style="width: 418px;"><br>
Значение:<br>
<textarea title="Значение слова" rows="10" cols="50" name="definition"></textarea><br>
<input type="submit" value="OK">
</form>
<br>
<a href="/my-web-dictionary/">Back</a>
</body>
</html>