Bom dia!
Seguinte to tentando mostrar uma mensagem de sucesso ou erro
num p:dialog apos executar um metodo, tenho o seguinte codigo na pagina:
<p:commandButton id="cmbSalvar" value="Salvar" update="dialog"
styleClass="botoes" oncomplete="dialog.show();"
action="#{ManegedBean.gravar()}">
<f:setPropertyActionListener value="#{true}" target="#{ManegedBean.meuMettodo}" />
</p:commandButton>
<<p:dialog header="Aviso" widgetVar="dialog" position="500,100" closeListener="#{ManegedBean.handleClose}"
closable="false" width="500" resizable="false">
<div align="center">
<h:panelGrid style="font-size:12px;">
<h:outputText value="#{ManegedBean.msgIncluidaSucesso}" />
<p:commandLink onclick="dialog.hide();">
<p:graphicImage value="/template/img/icones/ok.png" style="border: 0;" />
</p:commandLink>
</h:panelGrid>
</div>
</p:dialog>
esse é o metodo no ManegedBean
public String gravar() {
try {
fazAlgo();
this.msgIncluidaSucesso = "Incluído com sucesso.";
}
} catch (Exception e) {
e.printStackTrace();
this.msgIncluidaSucesso = "Não pode ser incluído.";
}
return null;
}
se alguem puder ajudar!!
Mas ta dando algum erro? ou simplesmente nao abre o dialog?
vc ja tentou usar o p:growl ele tb fica legal pra este tipo de msg
Consigo abrir o dialog mas não mostra a mensagem. A questao é que se for alterado com sucesso volta para pagina anterior, senao fica na mesma pagina.
vc tem q ter nas duas paginas este dialog , normalmente fazemos isso com facelets, para nao precisar ficar reescrevendo código.
Se puder posta o código das duas páginas na integra fica mais facil para entendermos seu problema.
Independente disso, inssisto, faça isso com o p:grow ou p:messages que vc será mais feliz.
Eu uso p:grow em todas as paginas, o usario grava ve a mensagem e clica no botao voltar,mas, em uma pagina especifica preciso que o usuario seja redirecionado apos mostrar a mensagem de seucesso, ou
mante-lo na paginas caso ocorra erro. Se eu usar p:grow como vou ter controle sobre as questoes citadas acima?
bom para controlar qual página vc direciona o usuário vc pode modificar este seu metodo gravar assim:
public String gravar() {
try {
fazAlgo();
this.msgIncluidaSucesso = "Incluído com sucesso.";
}
} catch (Exception e) {
e.printStackTrace();
this.msgIncluidaSucesso = "Não pode ser incluído.";
return "nomeDaPaginaAtual"; //Pagina q acionou o <p:commandButton id="cmbSalvar"
}
return "paginaQuandoTudoOK";
}
O que vc disse deve resolver, mas a mensagem nao esta renderizando no dialog, quando o dialog aparece tem apenas o botao.
Ja tive problema semelhante, ao invés de dar o update no dialog, de no id do form, altere a linha
<p:commandButton id="cmbSalvar" value="Salvar" update="dialog"
veja se funciona…
já tentou usar o request context ??