JasperReport 本地化找不到属性文件的问题

使用Jasper Report 本地化功能, 出现以下问题.
java.util.MissingResourceException: Can't find bundle for base name i18n, locale cs_CZ
 at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:837)
 at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:727)
 at java.util.ResourceBundle.getBundle(ResourceBundle.java:700)
 at net.sf.jasperreports.engine.fill.JRFillDataset.loadResourceBundle(JRFillDataset.java:551)
 at net.sf.jasperreports.engine.fill.JRFillDataset.setParameterValues(JRFillDataset.java:582)
 at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1202)
 at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:842)
 at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:814)
 at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)
 at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)
 at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile

(JasperFillManager.java:492)
 at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile

(JasperFillManager.java:448)
 at com.tom.i18n.I18nApp.fillReport(I18nApp.java:82)
 at com.tom.i18n.I18nApp.main(I18nApp.java:38)

大体上就是说找不到配置文件

 

在尝试多次后, 发现要在报表模版文件(.jrxml)中的 <jasperReport> 标签的属性 "resourceBundle"中增加

包路径:

 

<jasperReport
 name="I18nReport"
 resourceBundle="com.tom.i18n.xxx"
>
这里"com.tom.i18n"是包的路径, "xxx"是配置文件名.
注意这个包的位置与.properties文件的位置没有关系, 是你报表填充的类的所在位置, 因为是在填充报表的时候

使用到了.properties的配置文件

 

 

 

再看看<<jasperReport for java>>, 才明白

The resourceBundle attribute of the <jasperReport> element tells JasperReports
where to get the localized strings to use for the report. In order for this attribute to
work correctly, a property ile with a root name matching the value of the attribute
must exist anywhere in the CLASSPATH when illing the report.

CLassPath 难怪我在模仿例子用ant测试的时候, 不加包也没有错误, 原因是有Ant配置文件中设置了ClassPath
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值