无法在MVC Spring中显示PDF报告

时间:2013-06-26 02:04:49

标签: java spring spring-mvc jasper-reports

我想从我的项目中的视图中显示PDF报告,但是当我按下调用该方法的按钮时,它不起作用。

这是我的.js

function mostrarPDF() {
    var fechaInicio = $("#fechaInicio").val();
    var fechaFinal = $("#fechaFinal").val();

    var info = {fechaInicio:fechaInicio, fechaFin:fechaFinal};
    var jsonData = JSON.stringify(info);
    $.ajax({
        type:"POST",
        contentType:"application/json; charset=utf-8",
        data:jsonData,
        dataType:'json',
        url:"ReporteIncidencia",
        success:function (data) {
            alert("pass!");
        }
    });
}

这是接收数据的控制器

@RequestMapping(value = "/Reporte/ReporteIncidencia", method = RequestMethod.POST)
public @ResponseBody void ReporteIncidenciasPDF(@RequestBody Simul s, HttpServletResponse response) throws JRException, IOException {
    Date fechaInicio = s.getFechaInicio();
    Date fechaFin = s.getFechaFin();

    String reporte = context.getRealPath("/reportes/Reporte1.jasper");

    Map parameters = new HashMap();
    parameters.put("fechaFinal", fechaFin);
    parameters.put("fechaInicio", fechaInicio);
    String lineaConexion;
    ServletOutputStream servletOutputStream = null;
    JRPdfExporter exporter = new JRPdfExporter();
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    try {
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        conn = DriverManager.getConnection(lineaConexion); //it works
        JasperPrint jPrint = JasperFillManager.fillReport(reporte, parameters, conn);

        exporter.setParameter(JRExporterParameter.JASPER_PRINT, jPrint);
        exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, baos);
        exporter.exportReport();
        response.setHeader("Content-Disposition", "inline; filename=report.pdf");

        response.setContentType("application/pdf");
        response.setContentLength(baos.size());

        servletOutputStream = response.getOutputStream();
        baos.writeTo(servletOutputStream);
        servletOutputStream.flush();
    } catch (Exception ex) {
        System.out.println("Error: " + ex);
    }
}

服务器不生成PDF文件,也​​不显示任何错误。有什么想法吗?

0 个答案:

没有答案