如何从 JRXML Jasper Report 中的 Java 地图集合访问对象

问题描述 投票:0回答:1

我有以下课程:

public class ReportDto {
    private String name;
    private Map<String, CustomClass> map1;
}

我将其传递给我的 Jasper 报告:

JRDataSource dataSource = new JRBeanCollectionDataSource(Collections.singletonList(reportDto));

在我的 JRXML 文件中:

<field name="name" class="java.lang.String"/>
<field name="map1" class="java.util.Map"/>

<textField pattern="#,##0.00">
    <reportElement .. />
    <textElement .. />
    <textFieldExpression><![CDATA[$F{map1}.get("key").getClassFieldValue()]]></textFieldExpression>
</textField>

如何从 map1

as a CustomClass
检索值以访问
.getClassFieldValue()
,而不将
$F{map1}.get("key")
转换为 ReportDto?

java jasper-reports javabeans
1个回答
0
投票

您可以通过在 JRXML 中将该字段声明为 CustomClass 来完成此操作。确保数据源为地图提供正确类型的值。

<field name="map1" class="java.util.Map&lt;java.lang.String, com.yourtype.CustomClass&gt;"/>
© www.soinside.com 2019 - 2024. All rights reserved.