Добрый день.
Есть простое CRUD приложение на Spring Boot.
В IDE все работает как надо, проблем нет.
Сгенерил WAR, задеплоил в TomCat - там тоже все работает, кроме кодировки при отправке данных из формы - пишутся кракозябры, т.е. вместо "тест" в базу уходит "ТеÑÑ". Гуглил, но увы...
В application.properties:
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
spring.data.jpa.repositories.enabled=true
spring.jpa.generate.ddl=true
spring.jpa.hibernate.ddl-auto=create
spring.jpa.show-sql=true
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.sqlScriptEncoding=UTF-8
spring.messages.encoding=UTF-8
server.tomcat.uri-encoding=UTF-8
spring.http.encoding.charset=UTF-8
В pom.xml есть:
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
В web.xml есть:
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
В Application.java есть:
@Bean
public FilterRegistrationBean filterRegistrationBean() {
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
characterEncodingFilter.setForceEncoding(true);
characterEncodingFilter.setEncoding("UTF-8");
registrationBean.setFilter(characterEncodingFilter);
return registrationBean;
}
В .jsp присутствуют:
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
и
<meta charset="utf-8">
Что еще я упустил?
Update: Урезанный работающий проект http://web-site.ru/Library.rar
Проблема заключалась в неправильном использовании CharacterEncodingFilter
. Данный фильтр использовался в 2 местах одновременно:
Необходимо удалить фильтр в файле web.xml, и после этого из браузера в приложение будут приходить запросы в нормальной кодировке.
Довольно простой запрос, только мне ещё нужно получить дополнительное поле sub_count, которое берется при помощи COUNT(*) из другой таблицы
Можно ли проверить открытый ли сейчас баннер ? Необходимо скрыть баннер когда заходим в настройки, и открыть когда выходим из настроек, но когда...