struts2整合jasperreport学习笔记

关键字: struts2

除了struts2必备的jar包外还需导入下面的包:
commons-beanutils-1.7.0.jar
commons-codec-1.3.jar
commons-collections-3.1.jar
commons-digester-1.7.jar
commons-el-1.0.jar
commons-lang-2.1.jar
itext-1.4.1.jar
iTextAsian.jar
struts2-jasperreports-plugin-2.0.11.1.jar
jasperreports-3.0.0.jar

第一步是设计报表文件:用的工具是ireport,可以进行可视化设计,设计好后,保存为jrxml或xml后缀后文件以备后用。

第二步编写Action类:
Java代码 复制代码
  1. import java.io.File;   
  2. import java.util.List;   
  3.   
  4. import net.sf.jasperreports.engine.JasperCompileManager;   
  5.   
  6. import org.apache.struts2.ServletActionContext;   
  7.   
  8. import com.gfs.daoAction.DaoAction;   
  9. import com.opensymphony.xwork2.ActionContext;   
  10. import com.opensymphony.xwork2.ActionSupport;   
  11.   
  12. @SuppressWarnings("serial")   
  13. public class ShowReport extends ActionSupport {   
  14.   
  15.     @SuppressWarnings("unchecked")   
  16.     @Override  
  17.     public String execute() throws Exception {   
  18.         DaoAction dao = new DaoAction();   
  19.         reportlist = dao.queryAll();   
  20.         try {   
  21.             String reportSource;   
  22.             reportSource = ServletActionContext.getServletContext()   
  23.                     .getRealPath("/report/MyFirstReport.jrxml");   
  24.             File parent = new File(reportSource).getParentFile();   
  25.             JasperCompileManager.compileReportToFile(reportSource, new File(   
  26.                     parent, "MyFirstReport.jasper")   
  27.                     .getAbsolutePath());   
  28.         } catch (Exception e) {   
  29.             e.printStackTrace();   
  30.             return ERROR;   
  31.         }   
  32.         return SUCCESS;   
  33.     }   
  34.   
  35.     public List getReportlist() {   
  36.         return reportlist;   
  37.     }   
  38.   
  39. }  
import java.io.File;
import java.util.List;

import net.sf.jasperreports.engine.JasperCompileManager;

import org.apache.struts2.ServletActionContext;

import com.gfs.daoAction.DaoAction;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")
public class ShowReport extends ActionSupport {

	@SuppressWarnings("unchecked")
	@Override
	public String execute() throws Exception {
		DaoAction dao = new DaoAction();
		reportlist = dao.queryAll();
		try {
			String reportSource;
			reportSource = ServletActionContext.getServletContext()
					.getRealPath("/report/MyFirstReport.jrxml");
			File parent = new File(reportSource).getParentFile();
			JasperCompileManager.compileReportToFile(reportSource, new File(
					parent, "MyFirstReport.jasper")
					.getAbsolutePath());
		} catch (Exception e) {
			e.printStackTrace();
			return ERROR;
		}
		return SUCCESS;
	}

	public List getReportlist() {
		return reportlist;
	}

}


第三步在WebRoot目录下建立文件夹report,将设计好的报表xml文件(MyFirstReport.jrxml)放到此目录下,在WebRoot目录下再建一个目录images,将jasperreport-3.0.0.jar包下jasperreports-3.0.0\net\sf\jasperreports\engine\images\pixel.gif文件复制到images目录下,并改名为px即可。

第四步配置struts.xml:
Xml代码 复制代码
  1. <package name="report" extends="struts-default,jasperreports-default">  
  2.         <action name="showReport" class="com.gfs.action.ShowReport">  
  3.             <result name="success" type="jasper">  
  4.                 <param name="location">  
  5.                     /report/MyFirstReport.jasper   
  6.                 </param>  
  7.                 <param name="dataSource">reportlist</param>  
  8.             </result>  
  9.         </action>  
  10.     </package>  
<package name="report" extends="struts-default,jasperreports-default">
		<action name="showReport" class="com.gfs.action.ShowReport">
			<result name="success" type="jasper">
				<param name="location">
					/report/MyFirstReport.jasper
				</param>
				<param name="dataSource">reportlist</param>
			</result>
		</action>
	</package>


第五步编写JSP页面:
Html代码 复制代码
  1. <body>  
  2.     <s:url action="showReport" id="action" />  
  3.     <a href="<s:property value='action'/>">显示报表</a>  
  4. </body>  
	<body>
		<s:url action="showReport" id="action" />
		<a href="<s:property value='action'/>">显示报表</a>
	</body>

你可能感兴趣的:(java,apache,servlet,struts,velocity)