Não sei como o escopo iria influenciar mas uma boa prática é deixar os forms dentro do dialog, e não fora.
Exemplo:
<p:dialog widgetVar="dlg3" showEffect="explode" showHeader="false" hideEffect="bounce" height="250" width="500" modal="true" resizable="false">
<h:form id="form2" prependId="false">
// seu conteúdo aqui
</h:form>
</p:dialog>
Gente estou com uma formulário que chama um Dialog do primefaces, até então, o cadastro estava funcionando perfeitamente. Só que tive que mudar o Scopo de ResquestScoped para ViewScoped do meu Bean. Aí que está o problema, pois após eu ter mudado o scopo o botão da minha Dialog não chama mais o metdo salvar.
Alguém tem uma idéia do que possa estar acontecendo ?
@ManagedBean(name = "ppaBean")
@ViewScoped
public class PlanoPlurianualBean {}
<h:form id="form1" prependId="false">
<p:commandButton update=":form2" actionListener="#{ppaBean.prepararDialogPPA}" id="effectsDialogButton" value="CADASTRAR PLANO" oncomplete="dlg3.show();" />
</h:form>
<h:form id="form2" prependId="false">
<p:dialog widgetVar="dlg3" showEffect="explode" showHeader="false" hideEffect="bounce" height="250" width="500" modal="true" resizable="false">
<p:panel header="Formulário de Cadastro">
<center>
<p:panelGrid columns="2">
<h:outputLabel value="Número da Lei : " for="numLei" />
<p:inputText id="numLei" value="#{ppaBean.ppa.numLei}" required="true" requiredMessage="Informe o número da lei." />
<h:outputLabel value="Data de Publicação : " for="dtPublic" />
<p:calendar value="#{ppaBean.ppa.dtPublicacao}" locale="pt_BR" id="dtPublic" required="true" requiredMessage="Informe a data de publicação." />
<h:outputLabel value="Ano Inicial : " for="dtAnoInicialPpa" />
<p:inputText value="#{ppaBean.ppa.dtAnoInicialPpa}" id="dtAnoInicialPpa" required="true" requiredMessage="Informe o ano inicial." />
<h:outputLabel value="Ano Final : " for="dtAnoFinalPpa" />
<p:inputText value="#{ppaBean.ppa.dtAnoFinalPpa}" id="dtAnoFinalPpa" required="true" requiredMessage="Informe o ano final." />
<p:commandButton update=":form1:dataTable1,:form1:mensagemPrincipal" action="#{ppaBean.salvarPPA}" oncomplete="if(args.sucesso == true) { dlg3.hide();}" icon="icon-check" value="Cadastrar" />
<p:commandButton id="rejeita" value="Fechar" icon="icon-cancel" onclick="dlg3.hide()" type="button" />
</p:panelGrid>
</center>
</p:panel>
</p:dialog>
Fiz o que disse mas o problema continua. Engraçado que esta funcionando perfeitamente minha dialgo de cadastro, bastou muda o Scopo para ViewScoped.