Cuando damos clic en el botón Guardar al guardar desde el Controller queremos cerrar el dialogo.
PrimeFaces current = PrimeFaces.current();
current.executeScript("PF('zonaagenteDialog').hide();");
JsfUtil.closeDialog("zonaagenteDialog");
<p:dialog header="#{msg['dialog.registrarzonaagente']}" widgetVar="zonaagenteDialog" modal="true" showEffect="fade" hideEffect="fade" resizable="false">
<p:outputPanel id="zonaagenteDetail" style="text-align:center;">
<p:panelGrid columns="2" rendered="#{not empty jsdzonaagenteController.jsdzonaagenteSelected}" >
<f:facet name="footer">
<p:commandButton value="#{app['button.save']}" action="#{jsdzonaagenteController.save()}"
oncomplete="remoteUpdateDataTable()" update=":form:msgs"/>
<p:remoteCommand name="remoteUpdateDataTable"
update=":form:msgs,:form:dataTable" />
</f:facet>
<p:outputLabel value="#{msg['field.idzonaagente']}" />
<p:inputText value="#{jsdzonaagenteController.jsdzonaagenteSelected.idzonaagente}" />
<p:outputLabel value="#{msg['field.descrpcion']}" />
<p:inputText size="35" value="#{jsdzonaagenteController.jsdzonaagenteSelected.descripcion}" />
</p:panelGrid>
</p:outputPanel>
</p:dialog>