[Primfaces] Validar valor digitado em p:inputText

834 views
Skip to first unread message

Leonardo Ribeiro

unread,
Feb 10, 2012, 6:15:24 PM2/10/12
to jav...@googlegroups.com
Pessoal,

Tenho um form e nele um p:inputText que serve de entrada de dados para CPF.
Preciso fazer o seguinte: assim que o usuário terminar de digitar (e dar tab) pegar
o valor digitado e verificar se já existe um registro na base com esse valor informado.
A parte da busca no BD é fácil, só to tendo dificuldade de pegar o valor digitado após
o componente perder o foco

--
[]'s
Leonardo

Linux User #488650
Ubuntu User #27045
Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece

Rafael Pestano

unread,
Feb 10, 2012, 7:21:29 PM2/10/12
to jav...@googlegroups.com
Leonardo,

tenta algo como:

<h:inputText value#{cpfMB.cpf} ...>
<f:ajax event="blur" execute="@this" render="@this" listener="#{cpfMB.verificaCpf}"/>
</h:inputText>

cpfMB.java
...
public void verificaCpf(){
cpfFacade.consultaCpf(this.cpf);
....
}

 
--
Att, 

Rafael M. Pestano

Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
Graduando em Ciência da Computação UFRGS

@realpestano


De: Leonardo Ribeiro <leojr...@gmail.com>
Para: jav...@googlegroups.com
Enviadas: Sexta-feira, 10 de Fevereiro de 2012 21:15
Assunto: [javasf] [Primfaces] Validar valor digitado em p:inputText

--
Você recebeu esta mensagem por que é membro do Javasf
http://groups.google.com/group/javasf
 
Conheça também o Java Brazil: http://groups.google.com/group/thejavabrazil


Rafael Pestano

unread,
Feb 10, 2012, 7:23:08 PM2/10/12
to jav...@googlegroups.com
opa agora que vi que é PF, a ideia é a mesma

<p:inputText value#{cpfMB.cpf} ...>
<pajax event="blur" process="@this" update="@this" listener="#{cpfMB.verificaCpf}"/>
</p:inputText>
 
--
Att, 

Rafael M. Pestano

Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
Graduando em Ciência da Computação UFRGS

@realpestano


De: Rafael Pestano <rmpe...@yahoo.com.br>
Para: "jav...@googlegroups.com" <jav...@googlegroups.com>
Enviadas: Sexta-feira, 10 de Fevereiro de 2012 22:21
Assunto: Re: [javasf] [Primfaces] Validar valor digitado em p:inputText

Leonardo Ribeiro

unread,
Feb 11, 2012, 7:39:19 PM2/11/12
to jav...@googlegroups.com
opa.. fiz como o colega falou mas o form não é atualizado.
Se eu der um refresh no browser as informações aparecem.
É que com o valor digitado do cpf/cnpj eu acesso o banco e verifico se ja existe um cliente e se sim atualizo todo o form com os dados do cliente...

PS: Se eu uso <h:inputText> funciona... se uso o <p:inputText> não....



2012/2/10 Rafael Pestano <rmpe...@yahoo.com.br>

Leonardo Ribeiro

unread,
Feb 11, 2012, 7:56:10 PM2/11/12
to jav...@googlegroups.com
Desculpe o equivoco, nem com  <h:inputText>  funciona...

Segue trecho do xhtml

<h:form id="formAddUpdt" rendered="#{nomeMB.addUpdtState}">
<p:panel header="Inserindo/Alterando Cliente">
<h:panelGrid columns="3">
   <h:outputLabel for="tfCnpjCpf" value="CNPJ/CPF"/> 
   <p:inputText id="tfCnpjCpf" value="#{nomeMB.cnpjCpf}" maxlength="20" size="20">
    <p:ajax event="blur" process="@this" update=":formAddUpdt" listener="#{nomeMB.verificaCpfCnpj}" />
    <p:focus/>
   </p:inputText>
   <h:message  for="tfCnpjCpf" errorClass="error"/>
 

PS: no update do ajax eu tentei tbm @form, @all, mas nada...



2012/2/11 Leonardo Ribeiro <leojr...@gmail.com>

Leonardo Ribeiro

unread,
Feb 11, 2012, 8:04:11 PM2/11/12
to jav...@googlegroups.com
Mais uma informação pessoal,

coloquei onsuccess="alert('OK')" no ajax e tanto com prime quanto com componente padrao recebo o alert OK

Mas o form com os componentes ainda não atualiza...somente se eu der um refresh no browser



2012/2/11 Leonardo Ribeiro <leojr...@gmail.com>

Leonardo Ribeiro

unread,
Feb 12, 2012, 1:37:12 PM2/12/12
to jav...@googlegroups.com
Pessoal, segue a página completa, de repente assim fica mais fácil de achar o possível problema

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      xmlns:h="http://java.sun.com/jsf/html
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.org/ui">
<f:view contentType="text/html"/>
<h:form id="frmPage">
<p:growl id="growlMessage" showDetail="false" />
<p:separator/>
<p:panel header="Cadastros - Cliente" footer="XPTO">
<p:toolbar style="background-color:#FFFFFF">
<p:toolbarGroup>
<p:commandButton id="btnShowFilter" icon="ui-icon-zoomin" style="color:#0066FF;background-color:#FFFFFF" ajax="false" actionListener="#{clienteService.consultar}" disabled="#{clienteService.addUpdtState}"/>
<p:commandButton id="btnAtalhos" update="growlMessage" style="color:#0066FF;background-color:#FFFFFF" ajax="false" actionListener="#{clienteService.atalho}" value="Atalhos" disabled="#{clienteService.addUpdtState}"/>
<p:commandButton id="btnAdicionais" update="growlMessage" value="Adicionais" style="color:#0066FF;background-color:#FFFFFF" disabled="#{clienteService.addUpdtState}"/>
<p:separator/>
<p:commandButton id="btnNovo" ajax="false" icon="ui-icon-plusthick" actionListener="#{clienteService.novo}" value="Novo" style="color:#0066FF;background-color:#FFFFFF" disabled="#{clienteService.addUpdtState}"/>
<p:separator/>
<p:commandButton id="btnConsultar" value="Consultar" ajax="false" icon="ui-icon-search" actionListener="#{clienteService.pesquisar}" style="color:#0066FF;background-color:#FFFFFF" disabled="#{clienteService.addUpdtState}"/>
<p:separator/>
<p:commandButton id="btnImprimir" value="Imprimir" icon="ui-icon-print" style="color:#0066FF;background-color:#FFFFFF"/>
</p:toolbarGroup>
<p:toolbarGroup align="right">
<p:commandButton id="btnFecharList" value="Sair do cadastro" ajax="false" style="color:#FF0000;background-color:#FFFFFF" actionListener="#{clienteService.closePage}" icon="ui-icon-closethick" disabled="#{clienteService.addUpdtState}"/>
</p:toolbarGroup>
</p:toolbar>
<p:separator/>
<h:form id="frmGrid" rendered="#{clienteService.addUpdtState}">
<p:panel header="Inserindo/Alterando Cliente">
<h:panelGrid columns="3">
   <h:outputLabel for="tfCnpjCpf" value="CNPJ/CPF"/> 
   <h:inputText id="tfCnpjCpf" value="#{clienteService.cnpjCpf}" maxlength="20" size="20">
    <p:ajax event="blur" process="@this" update="@form" onsuccess="alert('OK')" listener="#{clienteService.verificaCpfCnpj}" />
    <p:focus/>
   </h:inputText>
   <h:message  for="tfCnpjCpf" errorClass="error"/>
   <h:outputLabel for="tfNome" value="Nome"/> 
   <h:inputText id="tfNome" value="#{clienteService.nome}" maxlength="50" size="50" required="true"/>
   <h:message  for="tfNome" errorClass="error"/>
<h:outputLabel for="tfFantasia" value="Fantasia" /> 
   <h:inputText id="tfFantasia" value="#{clienteService.fantasia}" maxlength="20" size="20" required="true"/>
   <h:message  for="tfFantasia" errorClass="error"/>
</h:panelGrid>
</p:panel>
</h:form>
</p:panel>
</h:form>
</html>

No Ajax tentei update="@form", "frmGrid", "formPage" "@all", nada atualiza os outros campos, mais uma vez só atualiza os outros campos quando eu clico no botão Refresh do Browser... Testei no Firefox e Chrome e IE.

Testei com os componentes do JSF bem como os do Primefaces (3.0.1)

"2012/2/11 Leonardo Ribeiro <leojr...@gmail.com>

Rafael Pestano

unread,
Feb 12, 2012, 6:42:57 PM2/12/12
to jav...@googlegroups.com
Voc^não pode atualizar um form com a propriedade rendered pois o mesmo não está renderizando durante todo ciclo de vida do faces, o que você pode fazer é dar um id para o panelGrid e atualizalo ou tirar o rendered do form.

espero que ajude.
 
--
Att, 

Rafael M. Pestano

Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
Graduando em Ciência da Computação UFRGS

@realpestano


De: Leonardo Ribeiro <leojr...@gmail.com>
Para: jav...@googlegroups.com
Enviadas: Domingo, 12 de Fevereiro de 2012 16:37

Leonardo Ribeiro

unread,
Feb 12, 2012, 7:45:46 PM2/12/12
to jav...@googlegroups.com
Opa... acabei de resolver aqui e vim no forum para poder informar aos colegas.
Rafael, foi praticamente isso que eu fiz, mas no caso eu dei um id para o panel e no update do ajax eu coloquei para atualizar o panel, daí funcionou...



2012/2/12 Rafael Pestano <rmpe...@yahoo.com.br>
Reply all
Reply to author
Forward
0 new messages