Me gustaría crear una página de resultados para una página de exportación de informes. Esta página de resultados debe mostrar el estado de la exportación y ofrecer la descarga de esta exportación.¿Ejecuta la acción del bean de respaldo en la carga?
La exportación se realiza mediante un método de acción. Puedo ejecutarlo a través de commandButton
pero debe ejecutarse automáticamente en la carga.
¿Cómo puedo lograr esto?
JSF:
<h:commandButton value="Download report" action="#{resultsView.downloadReport}"/>
Copia de frijol:
public String downloadReport() {
...
FileDownloadUtil.downloadContent(tmpReport, REPORT_FILENAME);
// Stay on this page
return null;
}
Aclaración: ¿Es esto factible con a4j? Pensé en una solución que una solicitud Ajax desencadena mi acción downloadReport
y su solicitud es la descarga del archivo.
He intentado con esta solución. Funciona solo si la página no tiene otro control. Si la página tiene otro control, como la selección del cuadro desplegable, y la página va y viene varias veces, 'download()' seguirá llamando y el valor se restablecerá para siempre. Por lo tanto, ¿hay alguna manera de proteger su ejecución a una sola vez para siempre? – huahsin68