首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JSF上导出PDF不会导出

在JSF上导出PDF不会导出
EN

Stack Overflow用户
提问于 2017-01-26 15:14:18
回答 1查看 881关注 0票数 1

当我试图将datatable信息导出到PDF时,我遇到了这个问题,这个方法可以完成所有操作,但是它不会下载PDF,甚至不会生成。

Netbeans版本: 8.2 JSF: 2.2 基本情况: 5.3

代码语言:javascript
复制
Libraries used:
Jasperreports 6.3
poi 3.14
commons-beanutils-1.9.0
commons-collection-3.2.2
commons-digester-2.1
commons-logging-1.1.1
groovy-all-2.4.0
itext-2.1.7.js5
jaxp-ri
jcommon-1.0.23
jfreechart-1.0.19

我的方法是:

代码语言:javascript
复制
public void exportpdf(OrdenRetiro or) throws JRException, IOException {
    conexion con = new conexion();
    Map<String, Object> parametros = new HashMap<String, Object>();
    FacesContext context = FacesContext.getCurrentInstance();
    ServletContext servleContext = (ServletContext) context.getExternalContext().getContext();
    parametros.put("RutaImagen", servleContext.getRealPath("/reportes/"));
    parametros.put("cod_ordenretiro", or.getCod_ordenretiro());
    
    String temperatura = or.getEs_temperado()==1?"ReporteFreezer.jasper":"ReporteNoFreezer.jasper";
    
    String dirReporte = servleContext.getRealPath("/reportes/"+temperatura);
    HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
    response.addHeader("Content-disposition", "attachment;filename=Orden de Retiro"+or.getCod_ordenretiro()+".pdf");
    response.setContentType("application/pdf");

    JasperPrint impres = JasperFillManager.fillReport(dirReporte, parametros, con.getConnection());
    JasperExportManager.exportReportToPdfStream(impres, response.getOutputStream());
    context.responseComplete();            
}

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2017-01-26 16:09:22

找到解决办法了。

当该方法工作但不导出时,是因为xhtml上的ajax。在做了一些研究后得到了答案here

我引用这句话。

第一个问题是,默认情况下,<p:commandLink>发送一个Ajax请求。此请求由JavaScript代码触发。但是,JavaScript不能对包含文件下载的响应做任何事情。由于安全限制,JavaScript无法生成另存为对话之类的内容。这种反应基本上完全被忽视了。 您需要将ajax="false"添加到<p:commandLink>以关闭ajax,以便该按钮触发一个正常的同步HTTP请求,或者您需要用标准的<h:commandButton>替换它

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41876662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档