Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Configuração de UTF-8 no Servlet

Criando o projeto pelo JBoss Forge, como mostrado no curso, não é criado o web.xml. Toda configuração tem sido feita criando as classes ServletSpringMVC, AppWebConfiguration e JPAConfiguration. Como adicionar esta configuração no projeto? Segue abaixo o exemplo em xml que iria para o web.xml:

<filter>
     <filter-name>SetCharacterEncodingFilter</filter-name>
     <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
     <init-param>
         <param-name>encoding</param-name>
         <param-value>UTF8</param-value>
     </init-param>
     <init-param>
         <param-name>forceEncoding</param-name>
         <param-value>true</param-value>
     </init-param>
  </filter>
  <filter-mapping>
     <filter-name>SetCharacterEncodingFilter</filter-name>
     <url-pattern>/*</url-pattern>
  </filter-mapping>

Sei que poderia criar um filtro e mapear em "/", mas como fazer uma configuração mais elegante, como estamos fazendo até agora no curso?

2 respostas
solução!

Oi Sérgio, tudo bem?

Você pode fazer pelo seu WebApplicationInitializer:

FilterRegistration encodingFilter = container.addFilter("CharacterEncodingFilter", CharacterEncodingFilter.class);
encodingFilter.setInitParameter("encoding", "UTF-8");
encodingFilter.setInitParameter("forceEncoding", "true");
encodingFilter.addMappingForUrlPatterns(null, false, "/*");

Como estamos configurando utilizando a classe ServletSpringMVC, adicionei o código abaixo:

    @Override
    protected Filter[] getServletFilters() {
        CharacterEncodingFilter encodingFilter = new CharacterEncodingFilter();
        encodingFilter.setEncoding("UTF-8");
        encodingFilter.setForceEncoding(true);
        return new Filter[] {encodingFilter};
    }