本实例采用Struts2 2.0 + jasperreports-3.7.2-project ( jasperreports-3.7.2-project 官方下载站(www.jasperforge.org))
准备工作: 将所需要的jar文件拷贝到项目的lib目录下:将struts2 lib文件夹下的struts2-jasperreports-plugin-2.1.8.1.jar 以及 jasperreport 目录下dist文件夹下的jasperreports-3.7.2.jar文件和lib文件夹下的所有jar文件都拷贝到项目的lib目录下
编写Action类: (StudentAction)
package org.cxg.action; import java.io.InputStream; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import org.cxg.service.impl.IStudentServiceImpl; import org.cxg.util.PageModel; import org.cxg.vo.Student; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class StudentAction extends ActionSupport { private IStudentServiceImpl service; private List<Student> students; public String report(){ //读取数据库中5条记录,输出到报表上 students = service.getStudents(0, 5); return "jasper"; } public void setService(IStudentServiceImpl service) { this.service = service; } public List<Student> getStudents() { return students; } public void setStudents(List<Student> students) { this.students = students; } }
Struts.xml 文件的配置
<package name="default" namespace="/" extends="jasperreports-default"> <action name="jasper*" class="StudentAction" method="report"> <result type="jasper" name="jasper"> <param name="location">test.jasper</param> <param name="dataSource">students</param> <param name="format">docx</param> </result> </action> </package>