首页 > 解决方案 > Jasper 报告导出 html 空白页

问题描述

我使用库 Jasper Report 导出 html 文件。

我想将 test.jrxml 导出到 test.html 并使用 JSP 在 WEB 浏览器上显示 test.html。但是,下面的代码导出空白 html 文件。

这是我的代码 Controller.class:

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.ui.Model;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.design.*;
import net.sf.jasperreports.engine.xml.*;
import net.sf.jasperreports.engine.type.WhenNoDataTypeEnum;
import java.util.HashMap;
import java.util.Map;
import java.lang.Exception;

@RequestMapping(value = {"${hdl.pdf.look.cert.lookCertLossView.url}/{lossSeq}/{certType}"}, method = RequestMethod.GET)
    public String lookCertLossPdfView(Model model, HttpServletRequest request) {
     String folderPath = "C:\\storage\\webapp\\resources\\";
        try {
            Map<String, Object> parameters = new HashMap<String, Object>();
            parameters.put("LOSS_SEQ","LOSS_SEQ");
            parameters.put("USER_NICK","USER_NICK");

            JasperReport jasperReport = JasperCompileManager.compileReport(folderPath+"test.jrxml"); 
            JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters);
            jasperReport.setWhenNoDataType(WhenNoDataTypeEnum.ALL_SECTIONS_NO_DETAIL);
            JasperExportManager.exportReportToHtmlFile(jasperPrint, folderPath+"test.html");

        } catch (Exception e) {
            e.printStackTrace();
        }       
  model.addAttribute("folderPath", folderPath);
        return this.lookCertLossPdfView;
    }

这是我的代码 test.jrxml:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.17.0.final using JasperReports Library version 6.17.0-6d93193241dd8cc42629e188b94f9e0bc5722efd  -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="test" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="4dc7fbc1-ee8f-46a8-8bb0-446caea5bfd3">
    <parameter name="LOSS_SEQ" class="java.lang.String"/>
    <parameter name="USER_NICK" class="java.lang.String"/>
    <columnHeader>
        <band height="66" splitType="Stretch">
            <staticText>
                <reportElement x="120" y="30" width="130" height="31" uuid="6e89f263-d3aa-462e-ba03-5b4a2c2e4c59"/>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font isBold="true"/>
                </textElement>
                <text><![CDATA[lossseq]]></text>
            </staticText>
            <staticText>
                <reportElement x="310" y="26" width="130" height="30" uuid="6caa9d32-16ea-4d73-b3d9-7087b8685220"/>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font isBold="true"/>
                </textElement>
                <text><![CDATA[usernick]]></text>
            </staticText>
        </band>
    </columnHeader>
    <detail>
        <band height="125" splitType="Stretch">
            <textField>
                <reportElement x="120" y="10" width="130" height="30" uuid="525ae0f1-ef54-4f1e-aca3-c0956bf17619"/>
                <textElement textAlignment="Center" verticalAlignment="Middle"/>
                <textFieldExpression><![CDATA[$P{LOSS_SEQ}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="310" y="10" width="130" height="30" uuid="cfc46246-6e45-4d3c-9e2e-929fe8f17dbf"/>
                <textElement textAlignment="Center" verticalAlignment="Middle"/>
                <textFieldExpression><![CDATA[$P{USER_NICK}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
</jasperReport>

你能告诉我的代码的问题吗?

标签: javajasper-reports

解决方案


推荐阅读