Je recherche actuellement une solution pour appeler une pagenavigation de "foo.xhtml" à "bar.xhtml" et démarrer un dialogue de téléchargement en même temps. J'ai déjà implémenté une solution qui a fonctionné sur mon test tomcat, mais le JavaScript a été découpé sur la plate-forme cible, un WAS 8.0.0.9.Invoke Navigation et FileDownload dans JSF sans JS
<c:if test="#{Bean.downloadPreconditions()}"> <!-- checks a simple boolean variable which gets set to 'true' after all informations for the download are set-->
<script>
window.onload = function() {
document.getElementById('form:download').onclick();
}
</script>
<h:commandLink id="download"
action="PrimeFaces.monitorDownload(start, stop);">
<p:fileDownload value="#{Bean.downloadFile}"></p:fileDownload>
</h:commandLink>
Dans cette solution à lancer le téléchargement via JavaScript après que je redirigés vers le targetpage "bar.xhtml" de "foo.xhtml".
La solution PreRenderView ne fonctionne pas, parce que j'ai visité la vue avant et il n'est pas fraîchement instancié.
J'ai essayé plusieurs versions légèrement différentes PrimeFaces.monitorDownload(start, stop);
avec un <p:fileDownload>
attaché, ainsi qu'un téléchargement invoqué par un backingbean comme il est décrit here.
Je suis conscient que j'essaie d'appeler 2 requêtes au serveur en un seul clic. Je veux savoir s'il est toujours possible de passer d'abord à la vue cible et ensuite appeler le dialogue de téléchargement de manière automatisée.