Struts2 Jasper Rerports Plugin


Please go through the following tutorial before proceeding further.

http://struts.apache.org/2.0.14/docs/jasperreports-tutorial.html

Following  is a little modified version of “struts.xml” given in above tutorial

    
        
            /jasper/our_compiled_template.jasper
            myList
            PDF
        
        
            /jasper/our_compiled_template.jasper
            myList
            XLS
        

...

But at this point if your website user try to download the report file, it is saved as “myJasperTest.action”. User has to rename it as “someFileName.pdf” or “someFileName.xls” to view it in appropriate program. You can make user’s  life easier by just adding a few lines into “struts.xml” file in every jasper related result. Following parameters are for PDF report result.

application/pdf
filename="document.pdf"

After adding above lines, “struts.xml” should look like the following

    
        
            /jasper/our_compiled_template.jasper
            myList
            PDF

            application/pdf
            filename="document.pdf"
        
        
            /jasper/our_compiled_template.jasper
            myList
            XLS

            application/xls
            filename="document.xls"


...

Here you have statically define the file name as “document”. User will always see the file “document.pdf” or “document.xls”. But if you want to dynamically change the file name, it will need a little more effort. Just change the following line

filename="document.pdf"

with the following one

filename="${fileName}.pdf"

You have given “fileName” as place holder. Now You have to provide a field and accessor of given place holder in you action class. In this case,  we have “com.acme.test.action.JasperAction” as described in the tutorial.

package com.acme.test.action;
...
public class JasperAction extends ActionSupport {
    ...
    private String fileName;          //place holder field
    ...
    public String getFileName()      // accessor
    {
        return fileName;
    }
}

You can change “fileName” in your action class according to your requirement and logic.

See Also

Advertisements

Author: Bilal Mirza

I have been working as Software Engineer since September 2009. I have been enjoying Java and Web. I have experienced Struts1, Struts2, Hibernate, JavaFX, Jasper Reports, JQuery, and more. I did Intermediate and Graduation with major subjects Mathematics, Physics, and Computer Studies. I completed my M.Sc.(I.T.) from University of Punjab Lahore, Pakistan, and was awarded Gold Medal on getting first position.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s