Início > programação, programação JSF > Corrigindo o problema de Ajax no IE9 com JSF e Richfaces 3

Corrigindo o problema de Ajax no IE9 com JSF e Richfaces 3

Assim que saiu o Internet Explorer 9 começamos a ter inúmeros problemas com o RichFaces 3, especialmente com as requisições em Ajax. O problema está no javascript de terceiros usado pelo componente de interfaces ricas. Algumas pessoas mencionaram ter conseguido corrigir e divulgaram o método, entretanto outras fizeram o mesmo procedimento e não deu certo (como eu).

Segundo os desenvolvedores do RichFaces, eles estão muito atarefados com a versão 4.0 da biblioteca. Há previsão de sair uma versão 3.3.4 com as correções, mas sem prazo divulgado.

Dessa forma, a única solução que encontrei foi adicionar um filtro no web.xml para forçar o IE9 a trabalhar como a versão 8. O procedimento é muito simples e leva poucos minutos. Vamos a ele:

  1. Crie uma classe Filter que adicione um header ao response forçando o IE9 a trabalhar como a versão 8. O arquivo .java pode ser o seguinte:

package br.com.projeto.filter;

import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.HttpServletResponse;

public class FiltroCorrecaoIE9 implements Filter {

   public void init(FilterConfig filterConfig) throws ServletException {
   }

   public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
      ((HttpServletResponse) response).setHeader("X-UA-Compatible", "IE=EmulateIE8");
      chain.doFilter(request, response);
   }

   public void destroy() {
   }
}

  1. Adicione o filter ao web.xml. Exemplo de código abaixo:

<filter>
    <filter-name>filtroIE9</filter-name>
    <filter-class>br.com.projeto.filter.FiltroCorrecaoIE9</filter-class>
</filter>

<filter-mapping>
    <filter-name>filtroIE9</filter-name>
    <url-pattern>*.jsf</url-pattern>
</filter-mapping>

  1. Rode a aplicação e teste as requisições Ajax no IE9 e em outros navegadores para ver se não quebrou nada.
Anúncios
  1. Rafael
    29/10/2014 às 11:47

    Muito Obrigado, me ajudou muito.

  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: