JSF下载并转发到结果页面



我使用的是JSF 2.1和Primefaces。当用户提交表单时,我的程序填充PDF文档并将其下载到用户的计算机上,然后我需要显示一个带有状态消息的新页面。我的代码下载了填好的表单,但没有重定向到结果页。

PDDocument document = PDDocument.load("C:/Backup/test.pdf");
PDDocumentCatalog docCatalog = document.getDocumentCatalog();
PDAcroForm acroForm = docCatalog.getAcroForm();
....

填充这里的字段..

FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
HttpServletResponse response = (HttpServletResponse) externalContext.getResponse();
response.setHeader("Content-disposition", "attachment; filename="test.pdf""); 
response.setHeader("Refresh", "1; URL=result.xhtml");
BufferedOutputStream output = null;
output = new BufferedOutputStream(response.getOutputStream());
document.save(output);
output.close();
facesContext.responseComplete();

您可以遵循以下其中一个:

  1. 选项1

    。将用户重定向到Result页面

    二世。显示用户一个下载按钮,当点击此按钮时,打开一个新的窗口,PDF将显示/下载。

  2. Opntion 2

    。将用户重定向到Result页面

    二世。当结果页面加载时,使用javascript/jQuery发送一个请求来打开一个新窗口,其中PDF将显示/下载。

相关内容

  • 没有找到相关文章

最新更新