Boa noite pessoall,estou quebrando a cabeça com alguns componentes do prime um dele é o cammandLink.
Veja o código
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.prime.com.tr/ui"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Cadastro de Usuários</title>
</h:head>
<f:view>
<h:body>
<h:form id="frmGridUsuario">
<p:growl id="menssagensUsuario"
life="3000"/>
<p:dataTable widgetVar="dtUsuario"
var="usuario"
value="#{usuarioMB.usuarios}"
paginator="true"
rows="5"
selection="#{usuarioMB.usuario}"
selectionMode="single"
onRowSelectComplete="dlgUsuario.show();"
emptyMessage="Nao existe Usuário cadastrado"
style="width:70%"
update="frmCadastroUsuario">
<p:column sortBy="#{usuario.email}"
filterBy="#{usuario.email}">
<f:facet name="header">
<h:outputText value="Email" />
</f:facet>
<h:outputText value="#{usuario.email}" />
</p:column>
<p:column sortBy="#{usuario.cpf}"
filterBy="#{usuario.cpf}">
<f:facet name="header">
<h:outputText value="CPF" />
</f:facet>
<h:outputText value="#{usuario.cpf}" />
</p:column>
<p:column sortBy="#{usuario.nome}"
filterBy="#{usuario.nome}">
<f:facet name="header">
<h:outputText value="Nome" />
</f:facet>
<h:outputText value="#{usuario.nome}" />
</p:column>
<p:column sortBy="#{usuario.perfil}"
filterBy="#{usuario.perfil}">
<f:facet name="header">
<h:outputText value="Perfil" />
</f:facet>
<h:outputText value="#{usuario.perfil}" />
</p:column>
</p:dataTable>
<p:panel style="width:69.2%">
<p:commandLink title="Incluir"
oncomplete="dlgUsuario.show();"
action="#{usuarioMB.incluir}"
update="dlgUsuario">
<h:graphicImage url="/imagens/novo.jpg"
style="border:0"/>
</p:commandLink>
<p:commandLink title="Apagar"
actionListener="#{usuarioMB.apagar}"
style="margin-left:20px"
update="frmGridUsuario">
<p:graphicImage url="/imagens/apagar.jpg"
style="border:0"/>
</p:commandLink>
<h:commandLink title="Voltar"
action="#{usuarioMB.voltar}"
ajax="false"
style="margin-left:20px">
<h:graphicImage url="/imagens/voltar.jpg"
style="border:0"/>
</h:commandLink>
</p:panel>
</h:form>
<h:form id="frmCadastroUsuario">
<p:dialog id="dlgUsuario"
widgetVar="dlgUsuario"
header="Usuario"
width="500"
modal="true">
<h:panelGrid columns="2">
<h:outputLabel value="Nome"
for="itxNome" />
<p:inputText id="itxNome"
value="#{usuarioMB.usuario.nome}"
size="35"
required="true"
requiredMessage="Informe o Nome"/>
<h:outputLabel value="CPF"
for="mskCpf" />
<p:inputMask id="mskCpf"
mask="999.999.999-99"
value="#{usuarioMB.usuario.cpf}"
required="true"
requiredMessage="Informe o Cpf"/>
<h:outputLabel value="Perfil"
for="somPerfil" />
<h:selectOneMenu id="somPerfil"
value="#{usuarioMB.usuario.perfil}"
required="true"
requiredMessage="Informe o Perfil" >
<f:selectItems value="#{usuarioMB.perfils}"/>
</h:selectOneMenu>
<h:outputLabel value="Email"
for="itxEmail"/>
<p:inputText id="itxEmail"
value="#{usuarioMB.usuario.email}"
size="35"
required="true"
requiredMessage="Informe o Email"/>
<h:outputLabel value="Senha"
for="pswSenha"
rendered="#{empty usuarioMB.usuario.cpf}"/>
<p:password id="pswSenha"
value="#{usuarioMB.usuario.senha}"
required="true"
requiredMessage="Informe a Senha"
rendered="#{empty usuarioMB.usuario.cpf}"/>
<h:outputLabel value="Confirmar Senha"
for="pswConfirmarSenha"
rendered="#{empty usuarioMB.usuario.cpf}"/>
<p:password id="pswConfirmarSenha"
value="#{usuarioMB.senha}"
required="true"
requiredMessage="Informe a Confirmação da Senha"
rendered="#{empty usuarioMB.usuario.cpf}"/>
</h:panelGrid>
<h:panelGrid columns="2">
<p:commandLink title="Gravar"
action="#{usuarioMB.gravar}"
rendered="#{empty usuarioMB.usuario.cpf}"
update="menssagensUsuario, itxId, itxNome, mskCpf, somPerfil,itxEmail ,pswSenha, pswConfirmarSenha, frmGridUsuario">
<p:graphicImage url="/imagens/gravar.jpg"
style="border:0"/>
</p:commandLink>
<p:commandLink title="Alterar"
actionListener="#{usuarioMB.alterar}"
rendered="#{!empty usuarioMB.usuario.cpf}"
oncomplete="dlgUsuario.hide();"
update="menssagensUsuario, itxId, itxNome, mskCpf, somPerfil,itxEmail ,pswSenha, pswConfirmarSenha, frmGridUsuario">
<p:graphicImage url="/imagens/gravar.jpg"
style="border:0"/>
</p:commandLink>
<p:commandLink title="Alterar Senha"
rendered="#{!empty usuarioMB.usuario.cpf}"
style="margin-left:20px">
<p:graphicImage url="/imagens/alterarSenha.jpg"
style="border:0"/>
</p:commandLink>
</h:panelGrid>
</p:dialog>
</h:form>
</h:body>
</f:view>
</html>
No exemplo botão GRAVAR E ALTERAR ,não funciona no seguinte caso.
se eu gerar um mensagem de erro la no ManagendBean a mandar pAra pagina.xhtml ela aparece normal, mais quando eu volta a clicar em alguns dois botoes não funciona mais.
se eu mudar para JSF h:comandLink funciona , mais por um não posso usar, no caso do gravar se eu usar o h:commandLink ele da o submit e fecha o Dialog e do prime ele vai la faz e mantem o Dialog, por isso precisa ser do prime(AJAX)