Não reexiba as mensagens já mostradas na caixa de diálogo em <p: messages autoUpdate = “true”>
Eu preciso mostrar mensagens de erro e aviso em um diálogo quando ele está sendo exibido. Se a caixa de diálogo não estiver aparecendo, preciso mostrar as mensagens na página do contêiner
Eu configurei um modelo usando facelets em todas as visualizações:template="/WEB-INF/templates/template.xhtml">
com este conteúdo:
<f:view locale="#{loginBB.localeCode}">
<p:messages autoUpdate="true" closable="true" id="globalMessages" />
<ui:insert name="content" />
</f:view>
Em todos os diálogos eu tenho o seguinte:
<p:messages autoUpdate="true" closable="true" id="dialogMessages" />
Quando uma caixa de diálogo é exibida, as mensagens de erro aparecem na caixa de diálogo e na exibição que a mantém, mas eu preciso que apareça apenas na caixa de diálogo.
O que estou fazendo errado? Eu não sei o que fazer
EDIT: De acordo com a resposta do BalusC eu fiz o seguinte:
Modelo:
<f:view locale="#{loginBB.localeCode}">
<ui:insert name="dialogs" />
<p:messages autoUpdate="true" closable="true" redisplay="false" />
<ui:insert name="content" />
</f:view>
Visão:
<ui:define name="content">
...
</ui:define>
<ui:define name="dialogs">
<h:form id="formX">
<p:dialog ... >
</p:dialog>
</h:form>
</ui:define>
Quando a caixa de diálogo é aberta, mostra a mensagem na caixa de diálogo. Tudo bem. Mas quando o diálogo é fechado, ele não mostra a mensagem na página principal