Amigos,
Estou fazendo um projeto da faculdade e sou leigo em JSF,
Gostaria de saber como faço para entrar com um CPF em um campo buscar o dado digitado no meu banco de dados e preencher o campo nome ?
Segue Código :
<p:outputLabel value="CPF: " for="cpf" />
<p:inputMask id="cpf" mask="999.999.999-99"
placeholder="Digite seu CPF"
value="#{cadastroClienteBean.cliente.cpf}" />
<br />
<br />
<p:outputLabel value="Tutor: " for="tutor"
style=" margin-left: -14px" />
<p:inputText id="tutor" placeholder="Preenchimento Automático"
value="#{cadastroClienteBean.cliente.nome}" size="80"/>
Estou utilizando primefaces e Hibernate
E não sei como posso fazer essa busca
Alguém poderia me ajudar ?
Obrigado !
Perceba como é feito:
1 - você manda pesquisar pelo método buscarCliente no ManagerBean e utiliza ajax para atualizar o formulário.
2 - No ManagerBean é feito a pesquisa e popula o objeto cliente.
3 - Através de recurso ajax o cliente surge na tela.
Use uma variável string para passar o cpf a ser pesquisado como parâmetro.
<h:form id=“fr_cliente”>
<p:outputLabel value="CPF: " for=“cpf” />
<p:inputMask id=“cpf” mask=“999.999.999-99"
placeholder=“Digite seu CPF"
value=”#{cadastroClienteBean.valorStringCpf}” />
<p:commandButton style=“font-size:12px;” action="#{cadastroClienteBean.buscarCliente}" process=“fr_cliente” update=“fr_cliente” icon=“ui-icon-search” title=“Pesquisar por CPF” />
<br />
<br />
<p:outputLabel value="Tutor: " for="tutor"
style=" margin-left: -14px" />
<p:inputText id="tutor" placeholder="Preenchimento Automático"
value="#{cadastroClienteBean.cliente.nome}" size="80"/>
</h:form>
Meu amigo,
obrigado pela atenção,
mas eu gostaria q não tivesse botão
assim q eu entrar com o CPF e dar tab por exemplo ja trazer o nome do cliente no campo NOME
Eu estou usando Hibernate, sabe se tem como fazer isso com Criteria para fazer a busca no meu banco de dados?
sou iniciante e não tenho muito experiencia
desde já agradeço a sua ajuda
O código da forma que esta você já consegue ao terminar de digitar o CPF ao teclar enter o JSF já entende que que você quer chamar o método do botão, sem precisar clicar.
public Cliente carregarCpf(String cpf) {
Criteria criteria = this.session.createCriteria(Cliente.class);
criteria.add(Restrictions.eq(“cpf”, cpf));
return (Cliente) criteria.uniqueResult();
}
Uma dica, não fique esperando cair do céu o “código perfeito” , faça o que seja “feio”, mas possível, depois vá melhorando e quando menos esperar vai estar fazendo o impossível.
1 curtida
@andrebmarinho
Consegui resolver meu problema
muito obrigado pela ajuda
segue codigo :
<p:outputLabel value="CPF: " for="cpf" />
<p:inputMask id="cpf" mask="999.999.999-99"
placeholder="Digite seu CPF"
value="#{cadastroClienteBean.cliente.cpf}">
<p:ajax event="blur" update="@form"
listener="#{cadastroClienteBean.pesquisarCPF}" />
</p:inputMask>
<br />
<br />
<p:outputLabel value="Tutor: " for="tutor"
style=" margin-left: -14px" />
<p:inputText id="tutor" placeholder="-"
value="#{cadastroClienteBean.cliente.nome}" size="80" disabled="true" />
1 curtida