Tem um codigo que voce pode fazer no bean que direciona a mensagem para um ID na sua pagina, so nao lembro qual é, vou verificar aqui.
Faz assim, mostre seu botao ou o que vai fazer mostrar a mensagem por favor ?
Ai ele ta dizendo pra atualizar sempre o messages do form 1, so que m2 é do form2 certo ? entao teste trocando para :form2:m2
Voce pode postar o codigo completo da sua pagina onde se encontram esses 2 elementos ?
Coloque o <p:dialog> dentro do <p:form>
<h:form id="form2">
<p: messages id="m2" />
<p:dialog widgetVar="dlg3" showEffect="explode" showHeader="false" hideEffect="bounce" height="250" width="500" modal="true" resizable="false">
.....
</p:dialog>
<h:form>
tem sim, crie outro p:messages, com id sucesso, e dai ao concluir a operacao voce da um update nele, MAS SE, concluir a operacao. Da pra voce fazer um contrele do sucesso ou nao no bean, ou ate mesmo usando ajax. Fica a seu criterio.
Nao tenho exemplos prontos aqui no trabalho, mas vou tentar ser mais claro.
- Voce clicou no botao, apos salvar com sucesso, la no bean voce manda a mensagem de sucesso, nao tem erro, é igual a mensagem de erro:
public void salvar() {
FacesContext context = FacesContext.getCurrentInstance();
try {
this.dao.insert(getBean());
context.addMessage( null, new FacesMessage( "Coisa salva com sucesso." );
} catch (Exception e) {
context.addMessage( null, new FacesMessage( "Ocorreu um erro ao salvar a Coisa!" );
}
}
La no <p:messages> pode deixar do jeito que ta, o que acontece que ele ira alterar a mensagem de acordo com a acao no bean.
Nao se esquecendo que pra atualizar é update=":form1:mensagem"
achei melhor por junto com a mensagem anterior.
Faz assim, segue o exemplo desse site, é meio complicado fazer da forma como te falei:
Nesse site ele mostra como voce redireciona a mensagem de acordo com o ID do <p:messages>
Boa Sorte, agora to ocupadao aqui no trampo eheheheheh =D
Gente gostaria de saber se tem como utilizar dois <p:messages> em minha pagina ?
<p:form id="form1">
<p:messages id="m1" />
</p:form>
<p: dialog>
<p:form id="form2">
<p:messages id="m2" />
</p:form>
</p:dialog>
Gostaria de ter um dentro de meu formulario principal e outro dentro de minha dialog. Quando eu realizo a validação dentro do meu Dialog aparece também no meu formulario pincipal, como resolver isso ?
Perdão, eu que coloquei errado mesmo.
Ele continua exibindo nos dois.... :?
Ele continua exibindo nos dois… :?
[code] <h:form id=“form1” prependId=“false”>
<br />
<p:fieldset legend="Plano Plurianual" style="text-align:left;">
<br />
<p:commandButton update=":form2" actionListener="#{ppaBean.prepararDialogPPA}" id="effectsDialogButton" value="CADASTRAR PLANO PLURIANUAL" oncomplete="dlg3.show();" />
<center>
<p:messages id="mensagemPrincipal" />
</center>
</p:fieldset>
</h:form>
[/code]
<p:dialog widgetVar="dlg3" showEffect="explode" showHeader="false" hideEffect="bounce" height="250" width="500" modal="true" resizable="false">
<p:panel header="Formulário de Cadastro">
<h:form id="form2">
<p: messages id="m2" />
<center>
<p:panelGrid columns="2">
<h:outputLabel value="Número da Lei : " for="numLei" />
<p:inputText id="numLei" value="#{ppaBean.ppa.numLei}" required="true" requiredMessage="Informe o número da lei." />
<h:outputLabel value="Data de Publicação : " for="dtPublic" />
<p:calendar value="#{ppaBean.ppa.dtPublicacao}" locale="pt_BR" id="dtPublic" required="true" requiredMessage="Informe a data de publicação." />
<h:outputLabel value="Ano Inicial : " for="dtAnoInicialPpa" />
<p:inputText value="#{ppaBean.ppa.dtAnoInicialPpa}" id="dtAnoInicialPpa" required="true" requiredMessage="Informe o ano inicial." />
<h:outputLabel value="Ano Final : " for="dtAnoFinalPpa" />
<p:inputText value="#{ppaBean.ppa.dtAnoFinalPpa}" id="dtAnoFinalPpa" required="true" requiredMessage="Informe o ano final." />
<p:commandButton update=":form2:m2" action="#{ppaBean.salvarPPA}" oncomplete="if(args.sucesso == true) { dlg3.hide();}" icon="icon-check" value="Cadastrar" />
<p:commandButton id="rejeita" value="Fechar" icon="icon-cancel" onclick="dlg3.hide()" type="button" />
</p:panelGrid>
</center>
</h:form>
</p:panel>
</p:dialog>
Gostaria de executar o cadastro e exibir a mensagem de sucesso no :form1:mensagemPrincipal ? Tem como fazer isso ? O que acontece é que quando valido os campos no form2 ele tambem aparece no form1…
Vou testar aqui e mando retorno já já…
Exibiu apenas dentro da Dialgo agora. So me tira mais uma dúvida!!!
Eu faço um cadastro dentro da minha Dialog e após realizar esse cadastro eu gostaria de exibir a mensagem no forulário principal, isto é, no Form1:mensagemPrincipal. Tem possíbilidade de fazer isso ?
Agradeço a ajuda.
Tem algum exemplo para me demonstrar ? Perdão mas não compreendi de forma devida.
Eu fiz como falou, entretanto, quando lançou a validação dos campos acabou por aparecer a mensagem de validção nos dois formulários, tanto dentro do dialogo como também do formulário principal.
<p:inputText value="#{ppaBean.ppa.dtAnoFinalPpa}" id="dtAnoFinalPpa" required="true" requiredMessage="Informe o ano final." />
<p:commandButton update=":form1:mensagemPrincipal,:form2:m2" action="#{ppaBean.salvarPPA}" oncomplete="if(args.sucesso == true) { dlg3.hide();}" icon="icon-check" value="Cadastrar" />
Já agradeço o que fizestes até aqui. Obrigado!