JSF下载并转发到结果页面

时间:2013-03-28 20:04:24

标签: java jsf download

我正在使用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 个答案:

答案 0 :(得分:0)

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

  1. 选项1

    我。将用户重定向到“结果”页面

    II。向用户显示下载按钮,单击此按钮后,打开一个新窗口,其中将显示/下载PDF。

  2. 意见2

    我。将用户重定向到“结果”页面

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