[RESOLVIDO] Problemas de encoding no IE com JSF 2.0

1 resposta
R

Estou tendo problemas ao retornar uma string com acentuação do servidor via Ajax.
Abaixo um código exemplo de como provocar o erro:
arquivo xhtml

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.prime.com.tr/ui"
      xmlns:f="http://java.sun.com/jsf/core">
  <h:head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
    <title>TODO supply a title</title>
  </h:head>
    <h:body>
        <h:form>
          <h:inputText value="#{teste.nome}" />
          <h:outputText id="out" value="#{teste.nome}"/>

          <h:commandButton action="#{teste.action}" value="Send">
             <f:ajax event="action" execute="@form" render="out"/>
          </h:commandButton>
        </h:form>
    </h:body>
</html>

ManagedBean

@ManagedBean(name="teste")
public class TesteBean {
  private String nome;
   
   // getter e setters omitidos

  public String action() {
    this.nome = "Usuário com acentuação não retorna nada no IE"; // se retorno uma string com acentuação nada acontece

    return null;
  }

}

Alguém já teve esse tipo de problema?

1 Resposta

R

A solução foi substituir o:

<f:ajax event=“action” execute="@form" render=“out”/>

por:

jsf.ajax.request

&lt;h:form id="testeForm"&gt;
      &lt;h:inputText value="#{teste.nome}" /&gt;
      &lt;h:outputText id="out" value="#{teste.nome}"/&gt;

      &lt;h:commandButton action="#{teste.action}" value="Send" onclick="jsf.ajax.request(this, event, {execute: '@form', render: 'testeForm'});return false;"/&gt;
    &lt;/h:form&gt;
Criado 21 de fevereiro de 2011
Ultima resposta 24 de fev. de 2011
Respostas 1
Participantes 1