Olá Galera,
Estou usando JSF 2.0 e PrimeFaces 3.0, estou com um pequeno problema, estou fazendo uma verificação de CPF com onBlur, ele faz uma chamada ManagedBean assim que ele retorna informando se o CPF é cadastrado eu teria que exibir na tela automaticamente esse ConfirmDialog para o usuário. como resolver isso? Help
Att,
Robson, bom dia. Bem vindo ao guj.
Você faz isso por ajax: JSF Exemplos Simples com Ajax.
Robson,
Como vc está tentando fazer?
Estou tentando fazer com que ele retorne do ManagedBean pelo update do AJAX , ele chama-se a função confirmation.show(). Porem eu percebi que a chamada da função é por onClick e nisso não iria me atender pois assim que eu busco o CPF eu já teria que exibir na tela “CPF JÁ CADASTRADO!!! DESEJA ASSOCIAR O USUARIO”. com a opção sim ou não.
Segue o meu codigo:
<h:panelGrid columns=“3” columnClasses=“labelPanelGrid, contentPanelgrid” rowClasses="">
<h:outputLabel value="#{msgs[‘label.cpf’]}" for=“cpf” />
<p:inputMask mask=“999.999.999-99” id=“cpf” required=“true” requiredMessage="#{msgs[‘campo.obrigatorio’]}"
value="#{usuarioBean.usuario.cpf}" tabindex=“2” onkeyup=“up(this)”>
<f:converter converterId=“br.com.montreal.cpfconverter”/>
<f:validator validatorId=“br.com.montreal.cpfvalidator”/>
<p:ajax event=“blur” listener="#{usuarioBean.verificarCPF}" update=“cpf, mensagemcpf, confirmDialog” />
</p:inputMask>
<p:message for=“cpf” id=“mensagemcpf”/>
</h:panelGrid>
<p:confirmDialog id=“confirmDialog” message=“CPF já existente!! Desseja associar ele?” rendered="#{usuarioBean.teste eq 1}"
header=“Initiating destroy process” appendToBody=“true” severity=“alert” widgetVar=“confirmation” >
<p:commandButton id="confirm" value="Sim" update="messages" oncomplete="confirmation.hide()"
actionListener="#{buttonBean.destroyWorld}" />
<p:commandButton id="decline" value="Não" onclick="confirmation.hide()" type="button" />
public boolean verificarCPF(){
try {
boolean carregar = true;
carregar = iusuarioEjb.buscarPorCpf(usuario.getCpf());
if(carregar == false){
FacesContext.getCurrentInstance().addMessage("cpf", new FacesMessage(FacesMessage.SEVERITY_WARN, "O CPF Já esta Cadastrado!", null));
this.setTeste(1);
this.setMostrarDialog(true);
return false;
}
} catch (DaoExcecao e) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_FATAL,
"Ocorreu um problema em nossa base de dados. Entre em contato com o administrador.", null);
FacesContext.getCurrentInstance().addMessage(null, message);
}
return true;
}
Tentei fazer esta chamada com Jquery mais não funcionou tambem:
$(document).ready(function(){
$abrirPopup = #{usuarioBean.mostrarDialog}
if ($abrirPopup){
$("#confirmDialog").show();
}
}