Bom galera … estou tendo problea para efetuar a pesquisa no banco utilizando o p:commandbutton … o método no Bean é chamado … porem o objeto passado é null … porém se eu utilizar o h:commandbutton a consulta é efetuda com sucesso …
Assim o metodo no bean é chamado … porem esta nulo
publicClientebusca(){System.out.println("ID "+" "+Cliente.getId());//vejo se o objeto esta preenchidoSystem.out.println("CPF "+" "+Cliente.getCpf());try{if(this.Cliente!=null){ClienteRepositoryrepository=newClienteRepository(this.entityManager);this.Cliente=repository.consulta(this.Cliente);}returnCliente;}catch(NoResultExceptione){FacesContext.getCurrentInstance().addMessage("consulta:id",newFacesMessage("Usuário não Cadastrado"));returnnull;}}
Console quando uso o p:commandobutton
INFO:IDnullINFO:CPFnullINFO:REPOSITORYCONSULTACPF
Console quando uso o h:commandobutton
INFO:ID2INFO:CPFINFO:REPOSITORYCONSULTAID2
Se alguem puder me ajudar eu agradeço … só dependo disso para liberar o modulo …
Vlw
Alguem já pssou por isso ?
Vi em alguns posts que o Ajax poderia estar causando problema … já habilitei desabilitei e ele não funciona com o p:commandButton … porém no metodo de cadastro de Cliente ele executa normalmente …
E
edudebom
Tente adicionar execute="@form". Ou execute=’'nomeForm".
ronnytds
quando vc usa o h:commandButton vc tbm coloca immediate=true? pq talvez seja isso, já que o valor true do immediate deixa os valores do bean nulos.
Diego_Adriano
Edu … no primefaces não tem o execute …
Ronnytds fiz como vc sugeriu retirei o immediate e funcionou … Seguindo seu raciocinio percebi q o h:commandbutton n possui o immediate … bem … eu tinha em mente que ele servia para n validar o formulario … mas agora andei lendo sobre o assunto e percebi q estava com o conceito errado …
Mais uma vez agradeço a vcs pela ajuda …
Abraço …
Diego_Adriano
Me desculpem … eu havia colocado como Resolvido … mas fui testar o meu botão de limpar e ele parou de funcionar. … parcialmente …
tipo … se eu preencho o formulário e clico no botao limpar antes de enviar ele funciona … porém se efetuo a busca ele n responde qdo clico nele …
Edu … no primefaces não tem o execute …
Ronnytds fiz como vc sugeriu retirei o immediate e funcionou … Seguindo seu raciocinio percebi q o h:commandbutton n possui o immediate … bem … eu tinha em mente que ele servia para n validar o formulario … mas agora andei lendo sobre o assunto e percebi q estava com o conceito errado …
Mais uma vez agradeço a vcs pela ajuda …
Abraço …
Ahã. Colei errado aqui. Seria o process em vez de execute.
ronnytds
cara, esse botão com a função de limpar é meio complexo mesmo, pq tem hora que ele limpa numa boa, mas parece que se vc vai no bean e seta algum objeto(que não seja um simples atributo), o botão não consegue limpar direito. talvez o melhor seja criar um método no bean para limpar todos os atributos e ai no botão vc chama esse método do bean e no update do botão vc manda atualizar o form, ou o panel, ou o panelgrid, seja qual vc estiver usando.
Takeshi91
Fiquei com preguiça de ler
Se você quer um botão que gere uma atualização em ajax na tela, use a p:commandButton
Se você quer um botão que funcione como o botão do JSF, só usar a p:commandButton e definir a sua propriedade Ajax como “False”
A action de ambos poderá executar um método, se você quer atualizar um componente, além de mandar um update, você deverá redefinir o valor que esta recebe la na ManagedBean.