[RESOLVIDO] Ajuda com JSF + AJAX + Banco de dados

10 respostas
maiconkf

Oi, to com um problema…
Tenho um campo ID para a pessoa digitar e o campo Nome que ta desabilitado para a pessoa escrever.

Queria saber como faço pra que quando a pessoa digita o ID 1, por exemplo, o ajax completa o campo Nome de acordo com o que tem no banco de dados com aquele ID.

Não sei se deu para entender…

Desde já, agradeço.

10 Respostas

Diego_Adriano

Pelo que entendi vc quer fazer uma consulta via ajax, certo ?

<h:outputText value="CPF : " for="cliente-cpf"/>
<p:inputMask
		id="cliente-cpf"
		value="#{clienteBean.cliente.cpf}"
		mask = "[CPF removido]"
		size="16">
    <f:validator validatorId="CpfValidator"/>
    <p:ajax event="blur" update="cadastroCliente,growl" listener="#{clienteBean.verificacpf}" />
</p:inputMask>
										
<h:outputText value="Nome :" for="cliente-nome"/>
<p:inputText 
		id="cliente-nome"
	        required="true"
		requiredMessage="NOME OBRIGATORIO"
		value="#{clienteBean.cliente.nome}"
		size="25"
		onkeyup="this.value = this.value.toUpperCase();">
</p:inputText>
public void verificacpf(){
		
	try {
			
		if (!cliente.getCpf().equals("") || cliente.getCpf() != null){
				
			ClienteRepository clienteRepository = new ClienteRepository(getEntityManager());
			
			Cliente clicpf = new Cliente();
				
			clicpf = clienteRepository.clientePorCpf(cliente.getCpf());
				
			if ( clicpf.getId() != null || clicpf.getId() > 0){
					
				setCliente(clicpf);
				setIdade(calculaidade());
					
				FacesContext.getCurrentInstance().addMessage("consulta:id",
						new FacesMessage("Cliente já cadastrado -  "+clicpf.getId()));
					
			}
		
		}
		else{
			System.out.println("CPF VAZIO");
		}
			
						
	} catch (NoResultException e) {
			e.printStackTrace();
	}
}

Se for isso ta ai .. abraços

maiconkf

é mais ou menos isso… mas achei meio confuso esse exemplo

se mais alguem poder me ajudar, eu agradeço

Diego_Adriano

Confuso ?!

maiconkf

é, não sou um javaman kk
tipo, não entendi isso daqui: update=“cadastroCliente,growl”
nem isso:
ClienteRepository clienteRepository = new ClienteRepository(getEntityManager());

repository seria os DAO?

não consegui adaptar para o meu sistema :confused:

Everton_Koga

Bom dia, maiconkf

Você está utilizando ejb?

maiconkf

Everton Koga:
Bom dia, maiconkf

Você está utilizando ejb?

Boa noite, Everton.
Sim, estou utilizando.

EJB, JPA, JSF e PrimeFaces.

Diego_Adriano

Cara, desconsidere o restante, o que importa pra vc é isso:

<p:ajax event="blur" update="cadastroCliente,growl" listener="#{clienteBean.verificacpf}" />

event => Ação que o Ajax irá esperar
update => Os componentes que eu quero atualizar
listener=> O Método que vc quer chamar.

Simples

Everton_Koga

Bom dia, maiconkf

Desculpe pela demora em responder mais final de semana ne :d;

Segue os códigos em anexo aparentemente não tem segredo nenhum, qualquer dúvida só pergunta que respondo.

maiconkf

Everton Koga:
Bom dia, maiconkf

Desculpe pela demora em responder mais final de semana ne :d;

Segue os códigos em anexo aparentemente não tem segredo nenhum, qualquer dúvida só pergunta que respondo.

cara, MUITISSIMO obrigado pela ajuda!
funcionou!

 precisei mudar o bean tive que por isso no metodo buscar:

Long index = Long.valueOf(id);

descricao = dao.findByID(index).getDescricao();
Everton_Koga

Bom dia, maiconkf

Que bom que deu tudo certo. :smiley:

Altera o titulo do post para [RESOLVIDO]

Criado 1 de agosto de 2012
Ultima resposta 7 de ago. de 2012
Respostas 10
Participantes 3