[Logo] Mentawai Forum - Mentawai Web Framework
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 

Forum Read-Only! Check the new site and forum here!

Problemas de Acentuação com MentaAjax [RESOLVIDO]  XML
Forum Index -> Bugs
Author Message
luizfraga



Joined: 15/12/2008 12:43:31
Messages: 3
Offline

Devido ao objeto Ajax embutido nos browsers trabalharem com enconding ou charset em UTF-8 e não ISO-8859-1, o MentaAjax vem sofrendo um problema comum ao utilizar o objeto implícito XMLHttpRequest.

Ao tentar desviar um controle usando:

Code:
 var r = new mtw.request(); 
      //r.addRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
 
      r.setUrl("table.addEndereco.mtw");  
      r.onSuccess(  
          function(data){  
              var resp = new mtw.response(data);  
              resp.innerHTML("tabelaEnderecos");  
          }  
      );  
      
      r.send();  
 


Os acentos e cedilhas dos campos textos são modificados na hora do envio para action virando caracteres especias no charset UTF-8. Já tentei inúmeras maneiras de corrigir o problema sem sucesso.

Além disso, não consigo usar o parâmetro addRequestHeader da biblioteca javascript ajax do mentawai.

Gostaria que pudessem me auxiliar nesse erro comum que acaba impedindo o bom funcionamento do desenvolvimento de sistemas com o menta.

Abraço a todos e parabéns pelo excelente framework.
luizfraga



Joined: 15/12/2008 12:43:31
Messages: 3
Offline

Encontrei milagrosamente a solução para um problema que muiiitos estão passando.

Ao tentar enviar uma parâmetro String com acentos, espaços e cedilhas usando a biblioteca JavaScript do MentaAjax, como no exemplo:

Code:
      
      var log = document.forms[0].logradouro.value; //Esse aqui.
      
      alert('Logradouro: '+log);
 	
      var r = new mtw.request(); 
      
      r.addParameter("logradouro", log);
 
      r.setUrl("table.addEndereco.mtw");  
      r.onSuccess(  
          function(data){  
              var resp = new mtw.response(data);  
              resp.innerHTML("tabelaEnderecos");  
          }  
      );  
      
      r.send();
 


O value do input text enviado ao servidor chegava a sua action com caracteres especiais num formato que acredito não ser o UTF-8, usado pelo objeto ímplicito XMLHttpRequest presente nos browsers atuais.

Ao chegar a sua action, por mais que vc tentasse transformá-lo em ISO-8859-1 ou UTF-8, a resposta era sempre a mesma, caracteres estranhos.

A solução que encontrei foi, no momento do envio do value String, antes de enviá-lo ao servidor ou container, fazer o encoder dele através do método JavaScript encodeURI, nesse momento, vc estará forçando a conversão dos caracteres em UTF-8.

Code:
     var log = encodeURI(document.forms[0].logradouro.value);
 


Com isso, vc garante que chegará na sua action um enconding no formato UTF-8, após isso, basta fazer o decoder na sua action com o uso da classe URLDecoder.

Code:
     String logradouro = URLDecoder.decode(input.getStringValue("logradouro"), "UTF8");
 
    System.out.println("Logradouro: "+logradouro);
 


Pronto, com isso vcs conseguiram exibir os acentos corretamente e cedilhas.

Espero ter contribuído para comunidade Menta e Java; e que essa informação seja útil a muitas pessoas no desenvolvimento com esse maravilhoso framework que é o MentaWai.

Abraço a todos.
luizfraga



Joined: 15/12/2008 12:43:31
Messages: 3
Offline

luizfraga wrote:
Devido ao objeto Ajax embutido nos browsers trabalharem com enconding ou charset em UTF-8 e não ISO-8859-1, o MentaAjax vem sofrendo um problema comum ao utilizar o objeto implícito XMLHttpRequest.

Ao tentar desviar um controle usando:

Code:
 var r = new mtw.request(); 
      //r.addRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
 
      r.setUrl("table.addEndereco.mtw");  
      r.onSuccess(  
          function(data){  
              var resp = new mtw.response(data);  
              resp.innerHTML("tabelaEnderecos");  
          }  
      );  
      
      r.send();  
 


Os acentos e cedilhas dos campos textos são modificados na hora do envio para action virando caracteres especias no charset UTF-8. Já tentei inúmeras maneiras de corrigir o problema sem sucesso.

Além disso, não consigo usar o parâmetro addRequestHeader da biblioteca javascript ajax do mentawai.

Gostaria que pudessem me auxiliar nesse erro comum que acaba impedindo o bom funcionamento do desenvolvimento de sistemas com o menta.

Abraço a todos e parabéns pelo excelente framework. 
 
Forum Index -> Bugs
Go to:   
Powered by JForum 2.1.6 © JForum Team