3

我们如何在 Jasper Reports 中访问 bean 的参数?

我必须在 Jasper Reports 中显示模型(不是集合)的数据。

我将模型作为地图中的参数传递给 Jasper 报告。

Map<String,Object> params = new HashMap<String,Object>();
params.put("object", object);

现在这个对象有我需要在报表标题部分显示其数据的字段。

就像我们在 jsp 中所做的那样${object.name}, ${object.phone},我们如何在 JasperReports 中实现这一点?

我试过做$P{object.name},但它不起作用。

谁能让我知道如何实现这一目标?

4

1 回答 1

11

有几个步骤可以做到这一点。

1)定义您的参数: 这将是参数类型的完整包名和类名。就像是:

<parameter name="object" class="com.mystuff.User"/>

2)为您想要的值调用getter方法: 将文本字段添加到适当的字段。如果我想在我的 User 类中使用该方法的值,getId()我的文本字段将如下所示:

<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 文件夹,或者如果您有一个已编译项目的 jar,您可以将其指向该文件夹。类路径设置位于Tools -> Options -> Classpath Tab.

于 2012-07-06T20:34:20.547 回答