首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >引入参数对象后Jasper未渲染

引入参数对象后Jasper未渲染
EN

Stack Overflow用户
提问于 2015-08-11 21:54:28
回答 1查看 69关注 0票数 2

在我们删除了一个mongo db数据源并将一个对象作为参数传递后,JasperReports (5.6.1)不能正确呈现,它包含了我们报表中所需的所有信息。现在,生成的pdf始终是一个空白的白页。

参数设置:

代码语言:javascript
复制
Map<String, Object> reportParameter = new HashMap<String, Object>();
reportParameter.put("myObject", myObject);
//...
JasperPrint print = JasperFillManager.fillReport(inputStream, reportParameter);

在.jrxml内部:

代码语言:javascript
复制
<parameter name="myObject" class="de.me.MyObject"/>
<detail>
    <band height="572" splitType="Stretch">
        <textField>
            <reportElement x="57" y="88" width="310" height="14" uuid="9000cf95-9a16-4e89-a9e1-52549680a729"/>
            <textFieldExpression><![CDATA[$P{myObject}.getSomething().getAbout().getMe()]]></textFieldExpression>
        </textField>
    </band>
</detail>

应该呈现的值是一个字符串,它是确定设置的,并且不为空。

我们使用的是Java 8,没有编译错误,但是当使用像这样的未定义的getter时,我肯定会遇到一个错误

代码语言:javascript
复制
<![CDATA[$P{myObject}.getSomething().getAbout().getInvalid()]]>

当我们使用一个简单的字符串而不是对象时,渲染也会失败。但也没有错误,只有一个白页。

代码语言:javascript
复制
<![CDATA["foobar"]]>

我们认为这与参数对象无关,相反,由于删除了外部数据源,内部发生了一些故障?!

我们不知道该怎么做,也许有人给了我们提示?

EN

回答 1

Stack Overflow用户

发布于 2015-08-19 20:23:53

您可以尝试在报告填充过程中传递一个JREmptyDataSource,这是对您的Mongo DB数据源的引用。

代码在您的情况下可能会有所不同,但这里有一个示例,说明它可能是什么样子:

代码语言:javascript
复制
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, new JREmptyDataSource());
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31943762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档