Problema com Template JSF 2 e confirmDialog do PrimeFaces

Criei um template, depois chamei ele em uma pagina, ate ai tudo fmz
tudo funciona lindo, so que nesta pagina eu tenho um confirmDialog
O que esta acontecendo é o seguinte, quando eu clico para exibir o confirmDialog ele fica atras da marca d’agua
ou seja, não consigo clicar nele. Se eu colocar appendToBody=“true” ele aparece certinho, mas quando clico nos botões
ele ate executa a função no action, mas não desaparece, mesmo clicando no botão que chama o hide()

segue o codigo do template

[code]

Financeiro HSC
<h:body>

<p:layout style="min-width:1000px;min-height:800px;" id="layout">
	<p:layoutUnit position="west" resizable="true" size="100" minSize="150" maxSize="800"> 
		<h:form id="menu">
			<p:commandButton id="dynaButton" value="Cadastros" type="button"/>  
				 <p:slideMenu overlay="true" trigger="dynaButton" my="left top" at="left bottom" style="width:150px">  
				    <p:submenu label="Cadastros">  
				        <p:menuitem value="Banco" action="#{menuManager.irBanco}" ajax="false"/>  
				    </p:submenu>  
				</p:slideMenu>  
		</h:form>
	</p:layoutUnit>
	<p:layoutUnit position="center">
		<div id="header">
			<h:graphicImage dir="ltr" url="/imagens/logooficial.png" width="100" height="100" style="border:0px"/>
			<hr/>
		</div>
		
			<ui:insert name ="corpoPaginas"> Espaço para o conteúdo da tela </ui:insert>
		
		<div id="footer" style="text-align:center">
			<hr/>
			 Financeiro - HSConsultoria
		</div>
	</p:layoutUnit>
</p:layout>

 </h:body>
[/code]

e o da pagina

[code]
<ui:composition template="/menu/template.xhtml"
xmlns=“http://www.w3.org/1999/xhtml
xmlns:ui=“http://java.sun.com/jsf/facelets
xmlns:h=“http://java.sun.com/jsf/html
xmlns:f=“http://java.sun.com/jsf/core
xmlns:pe=“http://primefaces.org/ui/extensions
xmlns:p=“http://primefaces.org/ui”>

<ui:define name="corpoPaginas">
<h:form id="banco">
	<p:messages globalOnly="true" showDetail="true" closable="true" id="msg"/>
	
	<p:panel>
	<f:facet name="header">
		<h:outputText value="Cadastrar Banco"/>
	</f:facet>

	<h:panelGrid columns="3">
		<h:outputText value="Numero Agencia: " />
		<p:inputText id="numeroAgencia" required="true" requiredMessage="Preencha o número da Agencia!" value="#{bancoManager.banco.numeroAgencia}"/>
		<p:message for="numeroAgencia" />
			
		<h:outputText value="Numero Conta: " />
		<p:inputText id="numeroConta" required="true" requiredMessage="Preencha o número da Conta!" value="#{bancoManager.banco.numeroConta}"/>
		<p:message for="numeroConta" />
		
		<h:outputText value="Nome: " />
		<p:inputText id="nome" required="true" requiredMessage="Preencha o nome Banco!" value="#{bancoManager.banco.nome}"/>
		<p:message for="nome" />
	
		<h:outputText value="Saldo Inicial: " />
		<pe:inputNumber disabled="#{bancoManager.atualizar}" id="saldoInicial" symbol="R$ " decimalSeparator="," thousandSeparator="." required="true" requiredMessage="Preencha o Saldo Inicial!" value="#{bancoManager.banco.saldoInicial}"/>
		<p:message for="saldoInicial" />
		
		<p:commandButton  value="#{bancoManager.botao}" global="true" action="#{bancoManager.cadastrar}" update="banco, msg" rendered="#{bancoManager.atualizar}"/>
		<p:commandButton  value="#{bancoManager.botao}" onclick="confirmationCadastro.show()" rendered="#{!bancoManager.atualizar}"/>
		<p:commandButton  value="Voltar" action="#{bancoManager.voltar}" update="@form" global="true" process="@this" rendered="#{bancoManager.atualizar}"/>
	</h:panelGrid>
	<p:separator/>
	
	<p:dataTable paginator="true" value="#{bancoManager.listaBancos}" var="banco" id="bancoCadastrados"
        paginatorTemplate="{FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
        rows="5" rowsPerPageTemplate="1,5,10,15" paginatorPosition="bottom"> 
        <f:facet name="header">
        	<h:outputText value="Bancos Cadastrados"/>
        </f:facet>
        
        <p:column headerText="Agencia" >
        	<h:outputText  value="#{banco.numeroAgencia}"/>
        </p:column>
        <p:column headerText="Conta">
        	<h:outputText value="#{banco.numeroConta}"/>
        </p:column>
        <p:column headerText="Nome">
        	<h:outputText value="#{banco.nome}"/>
        </p:column>
        <p:column headerText="Saldo Inicial" styleClass="colunadireita">
        	<h:outputText value="#{banco.saldoInicial}" >
        	<f:convertNumber currencySymbol="R$" groupingUsed="true"  maxFractionDigits="2" type="currency" locale="pt_BR"/>
        	</h:outputText>
        </p:column>
        
        <p:column headerText="Atualizar" styleClass="colunacentro">
        	<p:commandLink action="#{bancoManager.selecionar}" update="@form" process="@this" >
        	<h:graphicImage url="/imagens/atualizar.png" width="15" height="15" style="border:0px" />
        	</p:commandLink>
        </p:column>

        <p:column headerText="Excluir" styleClass="colunacentro">
        	<p:commandLink action="#{bancoManager.selecionar}" process="@this" onclick="confirmation.show()">
        	<h:graphicImage url="/imagens/excluir.png" width="15" height="15" style="border:0px" />
        	</p:commandLink>
        </p:column>
        
	</p:dataTable>
	
	</p:panel>

	<p:confirmDialog id="confirm" message="Tem certeza que deseja excluir o banco?" header="Excluir Banco" severity="alert" appendToBody="true" widgetVar="confirmation">
		<p:commandButton id="sim" value="SIM" action="#{bancoManager.excluir}" update="banco" oncomplete="confirmation.hide()" process="@this"/>
		<p:commandButton id="nao" value="NÃO" onclick="confirmation.hide()"/>
	</p:confirmDialog>

	<p:confirmDialog message="O Saldo Inicial não poderá ser alterado depois de cadastrado! Deseja cadastrar com esse Saldo Inicial?" header="Confirmar Saldo Inicial" severity="alert" widgetVar="confirmationCadastro" appendToBody="true">
		<p:commandButton id="simcadastro" value="SIM" update="banco" oncomplete="confirmationCadastro.hide()" action="#{bancoManager.cadastrar}" />  
   		<p:commandButton id="naocadastro" value="Vou checar" onclick="confirmationCadastro.hide()" type="button" />   
	</p:confirmDialog>
</h:form>

</ui:define>
</ui:composition>[/code]

alguem? vlw

Retira o confirmDialog desse form, e coloca um form dentro dele, assim você pode continuar usando appendToBody = true:

        <h:form> 
          <!-- aqui o form original -->
        </h:form> 


        <p:confirmDialog id="confirm" message="Tem certeza que deseja excluir o banco?" header="Excluir Banco" severity="alert" appendToBody="true" widgetVar="confirmation">  
             <h:form>
                  <p:commandButton id="sim" value="SIM" action="#{bancoManager.excluir}" update="banco" oncomplete="confirmation.hide()" process="@this"/>  
                  <p:commandButton id="nao" value="NÃO" onclick="confirmation.hide()"/>  
             </h:form>
        </p:confirmDialog>  
      
        <p:confirmDialog message="O Saldo Inicial não poderá ser alterado depois de cadastrado! Deseja cadastrar com esse Saldo Inicial?" header="Confirmar Saldo Inicial" severity="alert" widgetVar="confirmationCadastro" appendToBody="true">  

            <h:form>
                   <p:commandButton id="simcadastro" value="SIM" update="banco" oncomplete="confirmationCadastro.hide()" action="#{bancoManager.cadastrar}" />    
                  <p:commandButton id="naocadastro" value="Vou checar" onclick="confirmationCadastro.hide()" type="button" />
             </h:form>     
        </p:confirmDialog>  

É uma boa prática deixar dialogs/confirmDialogs não sendo encobridos por form e sim com forms internos a ele

Campeão funcionou legal, o unico problema que eu tenho agora é o seguinte
no form principal tenho uns campos required=“true” e nao esta validando agora
tipo se eu preencho cadastra de boa, se nao preencho, nao cadastra mas tbm as msgs
nao aparecem

sabe o motivo?

vlw

Deve tá faltando dá update no form principal para exibir as mensagens.

eu coloquei para atualizar ele
as caixas de texto ficaram vermelhas, mas as mensagens nao apareceram

<p:message for=“nomeCaixa” />

mais alguma ideia