JSF Message qual é a magica - PrimeFaces

Bom dia Gujeiros!
Estou pedindo umas dicas ou indicação de algum documento que eu possa resolver este problema.
Já fiz vários exemplo google, mas nada até agora!

Eu tenho uma sistema complexo,
que deve exibir várias mensagens, hora apresenada em uma tag, hora em outra.

<p:message id="msg1" showDetail="true">
<p:message id="msg2" showDetail="true">
<p:message id="msg3" showDetail="true">

Essas são as Tag por exemplo para apresentar as mensagens,

FacesContext.getCurrentInstance().addMessage("msg1", new FacesMessage(FacesMessage.SEVERITY_WARN, "Teste", "Testes");

assim estou elaborando as mensagens, mas ela é impressa em todas as tag msg1, msg2 e msg3.

Alguém já resolveu isso?

Caso o envio seja feito via ajax, utilize update=“msg1” ou update=“msg2” e assim por diante para atualizar o componente desejado.

Em si é isso que você falou, mas não dá de fazer isso,

Porque esse botão que faz isso é um template, e ele não sabe quais tags, em si atualizar.
até se pode atualizar passando as tags que dele deve atualizar, mas ainda não ha interesse nesse sentido.
em sim tem algumas p:messages que estão em p:dialogs acontece que quando uma menssagem for
exibida na pagina e depois acessar a p:dialog, está mensagem esta reiderizada também na p:dialog

Por isso se ela soubesse resolver pelo Id da TAG,
supostamente daria certo!

Não tenho certeza se resolve seu problema, mas tente globalOnly=“true” no message.

[quote=edudebom]Não tenho certeza se resolve seu problema, mas tente globalOnly=“true” no message.[/quote] Não, testei não deu certo

estou tentado fazer assim agora. UIComponent myComponent = FacesContext.getCurrentInstance().getViewRoot().findComponent("formPapers:msg1");
mas, ele não esta lendo esse componete ele esta vindo null

tentei assim, .findComponent("msg1"); também não funcionou.
não se tenho que colocar toda aquela árvore do DOM que aparece dentro do form

O problema é que o ID que você coloca tem que ser o clientId e não o Id do HTML… como pegar o clientId tem diversas forma na internet, tem que dar uma procurada.

Na p:messages dentro da dialog coloque redisplay=“false”

Segue:

No Bean:

    FacesContext.getCurrentInstance().addMessage("formContato:system", new FacesMessage(FacesMessage.SEVERITY_INFO,"Cadastrado com sucesso!", null));

No xhtml:

&lt;h:form class="form-horizontal" id="formContato"&gt;  
    &lt;h:message id="system" for="system"   errorClass="alert alert-error" infoClass="alert alert-info" warnClass="alert alert-warning" /&gt;          
&lt;/h:form&gt;

Estou com o mesmo problema conseguiu resolver?