Olá,
estou com o seguinte problema: tenho um cadastrado em uma página JSP.
Um dos campos deste cadastrado é o CEP. A hora que o usuário informar o CEP, uma busca no banco deve ser realizada e, se for encontrado o CEP procurado, os demais campos (rua, cidade e bairro) são preenchidos.
Estou usando JQuery, Struts2 e Hibernate.
O código na página JSP está assim:
<tr>
<td align="right">
CEP:
</td>
<td align="left">
<input name="CEP.cepCep" type="text"
onfocus="alterarCorDeCampo(this,'yellow')" onblur="alterarCorDeCampo(this,'white'); buscarCep(this);"
maxlength="20" />
</td>
</tr>
<div id="atualizar">
<tr>
<td align="right">
Rua:
</td>
<td align="left">
<input name="CEP.cepRua" type="text"
onfocus="alterarCorDeCampo(this,'yellow');" onblur="alterarCorDeCampo(this,'white')"
maxlength="255" />
</td>
</tr>
A função buscarCEP é invocada a hora que o usuário sai do campo. Ele contém o seguinte código:
function buscarCep(cep) {
$.post("buscaCep", {"id" : cep.value}, function(dados) {
//Não sei como posso fazer para preencher os campos!!!
});
}
Note que ele invoca a ação buscaCep (na verdade, /cliente/buscaCEP porque a página está dentro do diretório cliente). O código na classe que tem essa ação tratada está assim:
private String id;
private Cep CEP;
@Action(value="/cliente/buscaCep", results= {
@Result(name="ok", type="httpheader", params={"status", "200"})
})
public String buscarCEP() {
CEP = new CEPPers().obterCep(id);
return "ok";
}
//Métodos set e get para as variáveis de instância
E, por fim, o código na classe de persistência está assim:
public Cep obterCep(String cep) {
Session s = HibernateUtil.getSessionFactory().openSession();
List<Cep> l = s.createQuery("FROM Cep where cepCep = '" + cep + "'").list();
s.close();
if (!l.isEmpty())
return l.get(0);
return null;
}
Como posso fazer para atualizar os campos com o conteúdo recuperado do banco?
Obs.: já depurei a aplicação. O método anotado como uma ação do Struts2 está sendo invocado e o método da persistência está conseguindo recuperar os dados corretos do banco.
Obrigado,
abraços!
=D

