Fiz uma página de cadastro, meu JSP está configurado com o Encoding de UTF-8, adicionei ao spring o filtro de UTF-8, meu POM do mavem está para compilar o código em UTF-8. Mas mesmo assim sempre que meu objeto do JSP possuí acentos, ele vem com problemas.
Coloquei uns syso no meio do código para ver no log se realmente estava sendo carregado.
Estou utilizando Spring 4.1.6.RELEASE, com o Spring boot 1.5.10.RELEASE, WildFly 10.1.0 e compilando em Java 1.8.0_152
Filtro na configuração do Spring
@Bean
public FilterRegistrationBean filterRegistrationBean() {
CharacterEncodingFilter filter = new CharacterEncodingFilter();
filter.setEncoding("UTF-8");
System.out.println("XPTO - FILTER ADICIONADO");
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
registrationBean.setFilter(filter);
registrationBean.addUrlPatterns("/*");
return registrationBean;
}
Header do JSP
<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<!DOCTYPE html>
<html>
<head>
<META http-equiv="Content-Type" content="text/html;charset=UTF-8">
Meu Controller
@Controller
@RequestMapping(value = "/account", produces = "text/plain;charset=UTF-8")
public class AccountController {
@RequestMapping(value = "/saveBankAccount")
public String saveBankAccount(@ModelAttribute @Valid BankAccount bankAccount, BindingResult result, RedirectAttributes atts,
Model model, Locale locale) {
System.out.println("XPTO - Nome da conta: "+ account.getName());
if (result.hasErrors()) {
model.addAttribute("account", account);
return "/account/list";
}
accountService.save(account);
return "redirect:/account/";
}
Saida do filtro, mostrando que foi carregado
(...)
16:19:39,712 INFO [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter] (ServerService Thread Pool -- 551) Looking for @ControllerAdvice: Root WebApplicationContext: startup date [Fri Feb 09 16:19:25 CET 2018]; root of context hierarchy
16:19:39,751 INFO [stdout] (ServerService Thread Pool -- 551) XPTO - FILTER ADICIONADO
16:19:39,781 INFO [org.springframework.web.context.ContextLoader] (ServerService Thread Pool -- 551) Root WebApplicationContext: initialization completed in 14265 ms
16:19:39,787 INFO [io.undertow.servlet] (ServerService Thread Pool -- 551) Initializing Spring FrameworkServlet 'dispatcher'
(...)
Saída do nome do meu objeto quando tento inserir "Itaú" como nome da conta
16:20:12,074 INFO [stdout] (default task-64) XPTO - Nome da conta: Itaú