我正在使用 springbatch 调用使用 JSF 的碧玉报告。问题是当调用该方法时,facescontext 始终为空,因此我可以获得会话。对于我读过的不同问题,我意识到问题是因为批处理不在 JSF 生命周期中。如何创建 facescontext 的实例,以便获取会话信息?我尝试制作一个FacesServlet,但我不确定在什么时候,我可以调用它,以及如何获取请求和响应信息。
HttpServletResponse httpServletResponse = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
httpServletResponse.addHeader("Content-disposition", "attachment; filename=" + nombreReporte + ".pdf");
ServletOutputStream servletOutputStream = httpServletResponse.getOutputStream();
JasperExportManager.exportReportToPdfStream(jasperPrint, servletOutputStream);
FacesContext.getCurrentInstance().responseComplete();