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.
  1. Nenhum comentário ainda.
  1. Nenhum trackbacks ainda.

Deixe uma resposta

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

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.