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

questionAnswers(3)

yourAnswerToTheQuestion