Eu não tive boas experiências com <p:dialog> modal dentro de <p:layout>. O <p:layout> faz com que ele crie o css que bloqueia o acesso ao que está no fundo do dialog também na frente… algo a ver com z-index.
Só funcionou depois que declarei todos os p:dialog fora do p:layout , o seu caso ficaria assim:
tentei executar o exemplo que vc passou mais me deu erro abaixo:
16/03/2011 00:33:31 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet FacesServlet threw exception
java.lang.IllegalArgumentException: null source
at java.util.EventObject.<init>(Unknown Source)
at javax.faces.event.SystemEvent.<init>(SystemEvent.java:67)
at javax.faces.event.ComponentSystemEvent.<init>(ComponentSystemEvent.java:69)
at javax.faces.event.PostRestoreStateEvent.<init>(PostRestoreStateEvent.java:69)
at com.sun.faces.lifecycle.RestoreViewPhase.deliverPostRestoreStateEvent(RestoreViewPhase.java:256)
at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:245)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:107)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
Está parecendo mais algo a ver com o server. Eu testei usando o tomcat 6 e funcionou, pelo que li nos fóruns muita gente teve problema parecido com o seu usando a versão 7.
Trabalhei em um projeto grande com o Primefaces e Tomcat conseguimos minimizar alguns desses erros assim (usando o tomcat 6):
Nos jars NÃO inclua o javax.el.jar , na instalação do tomcat ele tem sua própria versão e dá uns conflitos bem doidos.
Quando der algum erro muito estranho vá nos Servers e faça o ‘Clean Tomcat Work Directory’
Em último caso exclua o teu projeto dos Servers e inclua novamente.
É só jogar os dialog para fora do layout, bem simples, outra coisa que você poderia fazer é criar um template e importar o modelo, mas nesse caso no commandButton utilize type=“push”;
Crie um arquivo .xhtml copie e cole o código abaixo e execute no glassfish ( testado com primefaces-2.2.1.jar).