JSF + JasperReport: открыть + скачать файл в браузере
Я использовал отчет о яшме в моем проекте jsf. Я хочу открыть файл в браузере, а затем загрузить его. но я не могу скачать. это мой код:
public void doPdf(List<?> list, String pathTemplate, String fileName) throws JRException, IOException {
String fileNameReport = new StringBuilder("filename=\"").append(fileName).append("\"").toString();
JRBeanCollectionDataSource jr = new JRBeanCollectionDataSource(list);
InputStream jasperTemplate = FacesContext.getCurrentInstance().getExternalContext().getResourceAsStream(pathTemplate);
JasperReport jasperReport = JasperCompileManager.compileReport(jasperTemplate);
Map<String, Object> parameters = new HashMap<>();
HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, jr);
HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", fileNameReport);
ServletOutputStream outputStream = response.getOutputStream();
JasperExportManager.exportReportToPdfStream(jasperPrint, outputStream);
outputStream.flush();
outputStream.close();
FacesContext.getCurrentInstance().responseComplete();
}