THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
We start by defining a simple Person
POJO class.
Code Block | ||
---|---|---|
| ||
package com.meviproacme.test; public class Person { private Long id; private String name; private String lastName; public Person() { } public Person(String name, String lastName) { this.name = name; this.lastName = lastName; } public Person(Long id, String name, String lastName) { this.id = id; this.name = name; this.lastName = lastName; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getName() { return name; } public void setName(String name) { this.name = name; } } |
...
Creating the Action
Code Block | ||
---|---|---|
| ||
package com.meviproacme.test.action; import java.util.ArrayList; import java.util.List; import net.sf.jasperreports.engine.JasperCompileManager; import com.meviproacme.test.Person; import com.opensymphony.xwork.ActionSupport; public class JasperAction extends ActionSupport { /** List to use as our JasperReports dataSource. */ private List<Person> myList; public String execute() throws Exception { // Create some imaginary persons. Person p1 = new Person(new Long(1), "Patrick", "Lightbuddie"); Person p2 = new Person(new Long(2), "Jason", "Carrora"); Person p3 = new Person(new Long(3), "Alexandru", "Papesco"); Person p4 = new Person(new Long(4), "Jay", "Boss"); // Store people in our dataSource list (normally they would come from a database). myList = new ArrayList<Person>(); myList.add(p1); myList.add(p2); myList.add(p3); myList.add(p4); // Normally we would provide a pre-compiled .jrxml file // or check to make sure we don't compile on every request. try { JasperCompileManager.compileReportToFile( "S2_WEBAPP/jasper/our_jasper_template.jrxml", "S2_WEBAPP/jasper/our_compiled_template.jasper"); } catch (Exception e) { e.printStackTrace(); return ERROR; } return SUCCESS; } public List<Person> getMyList() { return myList; } } |
...
Code Block | ||
---|---|---|
| ||
<package name="default" namespace="/" extends="jasperreports-default"> <action name="myJasperTest" class="com.meviproacme.test.action.JasperAction"> <result name="success" type="jasper"> <param name="location">/jasper/our_compiled_template.jasper</param> <param name="dataSource">myList</param> <param name="format">PDF</param> </result> </action> ... </package> |
...
Code Block |
---|
<action name="myJasperTest" class="com.meviproacme.test.action.JasperAction"> |
...