0

我正在使用JasperReports并希望生成不同语言的报告,但出现了问题。

这是我的代码

public void initQueryReport() throws JRException, ParseException {
    try {
        Map param = new HashMap();
        param.put("DATE", date2);
        fill1 = JasperFillManager.fillReport(
                "E:\\jasper reports\\employees.jasper", param, connection);
    } catch (Exception e) {
        System.out.println();
    }
}

ServletResponse respnce;
HttpServletResponse respons;

public void PDFQuery(ActionEvent event) throws JRException, IOException, ParseException {
    try {
        initQueryReport();
        respnce = (ServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
        respons = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
        respons.setContentType("application/pdf");
        respons.setHeader("Content-Disposition", "inline");
        respons.setContentType("application/pdf");
        ServletOutputStream out = respnce.getOutputStream();
        JRPdfExporter pdf = new JRPdfExporter();
        pdf.setParameter(JRExporterParameter.JASPER_PRINT, fill1);
        pdf.setParameter(JRExporterParameter.OUTPUT_STREAM, out);

        pdf.exportReport();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

我创建了一个名为localizationdemo.prperties的属性文件,其中包含我想要使用的语言的文本,我将此文件放在src文件夹中。

当我运行应用程序并单击生成报告的链接时,出现以下异常:

net.sf.jasperreports.engine.JRException: No input source supplied to the exporter

请注意,当我在调试模式下运行应用程序时,我有以下异常详细信息:

java.util.missingresourceexception can't find bundle for base name locale en_us

请帮我解决这个问题。非常感谢

4

2 回答 2

1

你确定你已经在 .jrxml 文件中设置了资源包属性,因为你似乎没有在你的 java 文件中设置它?

如果您使用的是 Jaspersoft Studio:在 Jaspersoft Studio 中单击大纲中的报告名称,然后从属性视图中选择“报告”菜单并检查子菜单“数据集”下的资源包属性(本地化演示)是否具有已设置为适当的属性文件。

您也可以在 Source View 中查看它,它应该是这样的:

<jasperReport /*****/ resourceBundle="localizationdemo" /****/>

更多信息:http ://www.tutorialspoint.com/jasper_reports/jasper_Internationalization.htm

于 2014-05-09T17:14:49.680 回答
0

你在使用 Spring 框架吗?可能是如果您在 spring.xml 中使用ResourceBundleViewResolver 。您必须将位于的路径本地化demo.properties 作为基本名称属性值。在 spring.xml 中查看我的以下代码:

class="org.springframework.web.servlet.view.ResourceBundleViewResolver"

property name="basename" value="config/jasperreports-views" 

就我而言,我使用了 spring 3.0

于 2014-04-02T02:14:16.617 回答