我正在使用 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
< / em>文件夹。
当我运行应用程序并单击生成报告的链接时,出现以下异常:
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
请帮我解决这个问题。而且很多
答案 0 :(得分:1)
您确定已在.jrxml文件中设置资源包属性,因为您似乎没有在java文件中设置它吗?
如果您正在使用Jaspersoft Studio:在Jaspersoft Studio中单击大纲中的报告名称,然后从属性视图菜单中选择“报告”并检查如果在子菜单'Dataset'下,Resource Bundle(localizationdemo)的属性已设置为相应的属性文件。
您也可以在源视图中查看它,它应该是这样的:
<jasperReport /*****/ resourceBundle="localizationdemo" /****/>
更多信息:http://www.tutorialspoint.com/jasper_reports/jasper_Internationalization.htm
答案 1 :(得分:0)
class="org.springframework.web.servlet.view.ResourceBundleViewResolver"
property name="basename" value="config/jasperreports-views"
在我的情况下,我使用了spring 3.0