JasperReports: How to call a java bean method in report template?

tinny picture tinny · Jul 10, 2011 · Viewed 11.6k times · Source

I am passing a java bean collection into a jasper report. I have several fields for this java bean defined an they are display just fine in my report.

Im wondering if there is a way to call a method of a java bean that is being passed into this report???

E.g. an expression for a text field, something like....

{current java bean}.methodToCall()

Answer

GenericJon picture GenericJon · Jul 11, 2011

Using the keyword _THIS in a field name or description will make it map to the bean class itself. Using the fieldDescription tag is better as it allows you to do this with multiple beans.

For example:

<field name="customBean" class="com.example.customBean">
    <fieldDescription>_THIS</fieldDescription>
</field>

Then you can call methods in an expression like this:

<textFieldExpression>$F{customBean}.someMethod()</textFieldExpression>