我们正在将项目从Jxls 1.x迁移到Jxls 2.2.8。在我们当前的模板中,我们使用Spring MessageSource来使用messageSource.getMessage(" message.key",locale)来本地化报告的标题。它适用于1.x版本,但在2.x版本中,它不会解析消息。
当方法有参数时,消息解析失败,但是当我们调用messageSource对象中的toString()方法时,它会工作并在单元格中打印字符串。
我们班的代码是:
public void convertToXLS(final Map<String, Object> p_model, final InputStream p_template, final OutputStream p_file, final Locale p_locale) throws InvalidFormatException, IOException {
DeviceEventsDownloadWebModel deviceEventsDownloadWebModel = (DeviceEventsDownloadWebModel) p_model.get("deviceEventsDownloadWebModel");
Context context = new Context();
context.putVar("messageSource", getMessageSource());
context.putVar("locale", p_locale);
context.putVar("deviceEvents", deviceEventsDownloadWebModel.getDeviceEvents());
JxlsHelper.getInstance().processTemplate(p_template, p_file, context);
}
任何解决问题的消化方法?我们也尝试将messageSource设置为一个函数,但它不起作用。
答案 0 :(得分:0)
解决!我们发现了这个问题。 MessageSource类中的getMessage()方法具有签名:String键,Object []参数,Locale语言环境,我们只传递了2个参数。