我们如何在Jasper Reports中访问bean的参数?
问题内容:
我们如何在Jasper Reports中访问bean的参数?
我必须在Jasper Reports中显示模型(不是集合)的数据。
我将模型作为参数传递给Jasper Report。
Map<String,Object> params = new HashMap<String,Object>();
params.put("object", object);
现在,该对象具有我需要在报告标题部分中显示其数据的字段。
像在jsp中我们一样${object.name}, ${object.phone}
,在JasperReports中如何实现呢?
我试过了,$P{object.name}
但是没有用。
谁能让我知道如何实现这一目标?
问题答案:
有几个步骤可以完成此操作。
1) 定义参数: 这将是参数类型的完整软件包和类名。就像是:
<parameter name="object" class="com.mystuff.User"/>
2) 为所需的值调用getter方法:
将文本字段添加到适当的字段。如果我想getId()
在User类中使用该方法的值,则我的文本字段将如下所示:
<textField>
<reportElement uuid="09bf47a8-8fc7-45c5-911a-c79c3d405ada" x="205" y="22" width="100" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$P{parameter1}.getId()]]></textFieldExpression>
</textField>
3) 在iReport中设置类路径:
如果使用iReport设计报告,则需要告诉它com.mystuff.User类的编译版本位于何处。如果您在Eclipse中,则可以将其指向项目中的bin文件夹,或者如果您有一罐已编译的项目,则可以将其指向。类路径设置位于Tools -> Options -> Classpath Tab
。