Problema com servlet/ajax

4 respostas
V

Pessoal, preciso de ajuda com esse problema - URGENTE!

Considerações:

Os dados são chamados no BD através de AJAX VIA SERVLET e retornam corretamente.

Se eu mandar apresentar (fora do INPUT) os dados da razaoSocial, eles são apresentados - normalmente.
Ocorre que, como estou fazendo um formulário de alterações, os dados que vem do BD têm que aparecer dentro de um INPUT - para as devidas alterações.
É aí que está o problema. Isto é, quando eu mando apresentar dentro de um INPUT, só aparece a PRIMEIRA PALAVRA da razaoSocial ANTES DO ESPAÇO. Ou seja, se a String que veio do BD é: “VICENTE DOMINGOS DE SOUZA”, só é apresentado VICENTE. Entretanto, se eu juntar todas as palavras (sem espaços entre elas - ex.: VICENTEDOMINGOSDESOUZA), então aparecem todas as palavras.

Observação:

Como ainda estou nos testes e desenvolvimento da interface, estou usando o BD MS ACCESS.

O SERVLET CONTAINER é o Tomcat 5.5.17;

Os dados são fornecido por um SERVLET que gera o código HTML, conforme fraguimentos abaixo;

Tudo que vem do BD está sendo chamado de um formulário HTML através de AJAX;

Select, checkbox, radio estão todos funcionando, normalmente - todos produzidos pelo mesmo SERVLET.

Pegunta: qual será o problema e como resolver?

Seguem fraguimentos do código da SERVLET:

public class FormularioAlteracao extends HttpServlet

{

String razaoSocial;

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws IOException, ServletException

{

int numRpf = Integer.parseInt(request.getParameter(“numeroRpf”));

try

{

status = false;

MeuState = MinhaConexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);

String SQL = SELECT * FROM T_RPF WHERE NR_RPF=+numRpf+"";

rs = MeuState.executeQuery(SQL);

status = true;

while(rs.next())

{

razaoSocial = rs.getString(“NM_RPF_EMP”);

PrintStream out = new PrintStream(response.getOutputStream());

out.println("<!doctype html public ‘-//w3c//dtd html 4.0 transitional//en’>");

/<em>Definição dos tipos de caracteres utilizados na apresentação de textos pelo navegador</em>/

out.println("<html><head><meta http-equiv=‘Content-Type’ content=‘text/html; charset=iso-8859-1’></head><body>");

out.println("<div id=‘inclusao’>");

out.println("<form name=‘formAlteracao’ accept-charset=‘iso-8859-1’ action=’/RPFEletronico/servlet/AlteracaoSQL’ method=‘POST’>");

out.println("<table class=‘inclusao’>");

out.println("<tr class=‘inclusao’><td class=‘inclusao’>Razao Social</td><td class=‘inclusao’>Seguimento</td><td class=‘inclusao’>Classificacao</td></tr>");

out.println("<tr class=‘inclusao’><td class=‘inclusao’><input class=‘inclusao’ size=‘71’ maxlength=‘70’ type=‘text’ name=‘razaoSocial’ value="+razaoSocial+"></td>");

4 Respostas

J

Tente:

out.println("<tr class='inclusao'><td class='inclusao'><input class='inclusao' size='71' maxlength='70' type='text' name='razaoSocial' value=\" "+razaoSocial+" \"></td>");

Aff, essas tag code de agora estão um saco…

V

Juliano, bom dia!

Valeu a ajuda. Funcionou direitinho!

Mas me diz uma coisa: por que tem que acrescentar o " " ?

Mais uma vez muito obrigado!

J

Isso se chama escape character e ele representa um character.

Nesse caso o " representa a aspas dupla.

Na API da sun você encontra mais sobre isso:

http://java.sun.com/j2se/1.5.0/docs/api/

Procure por Pattern e character escapes.

V

Juliano, bom dia!

Obrigado pela resposta vou me informar mais sobre esses ‘escape characters’. Valeu, sucesso.

Vicente Domingos

Criado 5 de outubro de 2006
Ultima resposta 17 de nov. de 2006
Respostas 4
Participantes 2