如何将XML组作为参数从jasper传递给java

时间:2017-02-17 17:24:59

标签: java jasper-reports

我正在尝试将XML组内容(我使用XML作为数据源)作为参数传递给java方法,我需要在java类中获取此组,格式化标记信息(name1 + name2 + name3 ..... nameN)并将其返回给JRXML TextField。 我可以用一个简单的XML标签来做,但是当我尝试用组做它时,它在java方法中显示为null: 我的XML:

<Group1>
    <Group2>
        <Person>
        <Name>John</Name>
        </Person>
        <Person>
        <Name>Mary</Name>
        </Person>
        <Person>
        <Name>Joseph</Name>
        </Person>
    </Group2>
</Gropup1>

我的JRXML字段声明:

<field name="group1.group2" class="java.lang.Object">
         <fieldDescription><![CDATA[Group1/Group2]]></fieldDescription>
</field>
<field name="group1.group2.person" class="java.lang.Object">
         <fieldDescription><![CDATA[Group1/Group2/Person]]></fieldDescription>
</field>
<field name="group1.group2.person.name" class="java.lang.String">
         <fieldDescription><![CDATA[Group1/Group2/Person/Name]]></fieldDescription>
</field>

我的JRML textField Expression:

<textFieldExpression   class="java.lang.String"><![CDATA[com.foo.report.MyReport.formatNames($F{group1.group2.person})]]></textFieldExpression>

我的方法签名:     public static String formatNames(Object person){...}

调试“formatNames”方法,参数“person”显示为null。

如果我将textFieldExpression的参数更改为字段group1.group2,它也会显示为null。

如果我将textFieldExpression的参数更改为字段group1.group2.person.name,则会在java debug中显示String:“John”。

目标是将名称列表格式显示为:“John - Mary - Joseph”在textFieldExpression中,如果有人有其他办法,请告诉我。 谢谢

0 个答案:

没有答案