RequestContext do PrimeFaces não funciona

Galera, preciso exibir um popup de sucesso para o usuário ao final do cadastro.
Quando termina de fazer o cadastro dou um show no confirmDialog:

[code]
public void salvar() {

    // validacoes  
  
    // caso tenha dado tudo certo  
    RequestContext context = RequestContext.getCurrentInstance();    
    //execute popup  
    context.execute("result.show();");    
}[/code]

E abaixo meu confirmDialog:

[code]
<p:confirmDialog widgetVar=“result”>
<h:form id=“resultBlock”>

				<!-- MSG SUCESSO -->
				<p:fieldset id="informationsuccess" legend="${globalMsgs.legend_success}">
					<h:panelGrid columns="1">
						<h:outputLabel styleClass="textLabel" value="${bloqueioMassivoController.arquivoLote.codigoLote}" />			
						<h:outputLabel styleClass="textLabel" value="${bloqueioMassivoController.totalRegistrosProcessados}"/>			
					</h:panelGrid>
					
					<!-- BOTOES -->
					<h:panelGrid columns="1" styleClass="panelButton">
						<p:commandButton id="ok" value="${globalMsgs.label_btn_ok}" onclick="result.hide()" type="button" />
					</h:panelGrid>
				</p:fieldset><br/>
				 
			</h:form>
		</p:confirmDialog>[/code]

Tipo, ele registra os dados no banco, cai no RequestContext mas não exibe o popup.
E não exibe nenhuma mensagem de erro.
Alguém poderia me ajudar?

Cadê o botão que invoca o método salvar?

O botão que chama o método salvar tá assim:

<!-- BOTOES -->
				<h:panelGrid columns="2" styleClass="panelButton">
					<p:commandButton value="${globalMsgs.label_btn_confirm}" action="#{bloqueioMassivoController.salvar}" ajax="false"/>
					<p:commandButton value="${globalMsgs.label_btn_cancel}" action="#{bloqueioMassivoController.cancelar}" ajax="false" immediate="true" />
				</h:panelGrid>

Mais uma vez o mesmo erro. :slight_smile:

Você não consegue fazer funcionar porque o RequestContext só funciona com chamadas ajax. como a sua não é ajax, não irá funcionar mesmo :slight_smile:

o execute JavaScript no oncomplete, porém em uma requisição normal, esse evento não existe.

Entendi Rodrigo.
Teria outra maneira de eu chamar o popup no final da requisição sem usar ajax?

Só com JavaScript no onload, porque você está carregando a página inteira de novo, como se estivesse carregando pela primeira vez, com uma flag de controle ou algo do tipo. Pode até usar JQuery se quiser para capturar o evento document.ready já que ele vem empacotado com o PrimeFaces. Algo assim:$(function(){ if(abrirPopup){ result.show(); } });

Legal Rodrigo, vou fazer isso.
Deixa eu te perguntar, eu não manjo muito de javaScript. No seu exemplo preciso de uma variável pra controlar quando o popup deverá aparecer ou não.
O javaScript consegue pegar um atributo do java pelo get?