Entrar com CPF e carregar campo do Nome - JSF

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

image

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 :wink:

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. :wink:

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