#Java que pariu - Acentuação e Spring MVC

/**

23.6.13

1 Manifestação */
Vamos a mais um problema que consegui resolver após horas de buscas. Descreverei a minha situação e você julgará se a solução que encontrei lhe será útil ou não. De novo, estes posts visam a eliminar, de forma objetiva, o problema, e não explicar sobre o que o causou. Isso pode ficar para outras ocasiões. Vamos lá.

Estou testando uma aplicação com Spring MVC e, em uma das minhas views, possuo um menu dropdown, cujo objetivo é fornecer um nome que será utilizado no meu controlador para recuperar uma entidade do banco. Acontece que o valor retornado, quando acentuado, era atribuído à variável String sem a formatação adequada, ou seja, com aqueles caracteres estranhos. Meu Netbeans, graciosamente configurado para o encoding UTF-8, mostrava o conteúdo da String sem problema algum, o que piorou minha situação. O que me fez entender o problema foi um teste com o length da String, que me retornava um char a mais que o tamanho da palavra. 

Foi procurando na Internet que encontrei uma pergunta, no StackOverflow, que envolvia essa questão. A solução foi direta, agradeço ao carinha que conseguiu resolver o pepino.

O que se deve fazer é, no web.xml do projeto, colocar o seguinte filtro:

<filter>
    <filter-name>encodingFilter</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>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
 </filter-mapping>

E foi assim que deu certo. Como disse, não sei se isso afeta negativamente a performance, mas, para quem quer se livrar logo do problema e avançar em seu trabalho, aí está.

REFERÊNCIAS

http://stackoverflow.com/questions/5895844/how-to-make-spring-mvc-controller-work-with-utf-8

http://revolucao.etc.br/archives/charsets-e-encodings/

Um comentário:

Fábio M. disse...

Muito bom, resolveu o problema.

Postar um comentário