我正在开发一个Java EE Struts 2和Hibernate项目,用于预订机票。现在我的所有工作都已完成,我必须生成一张票。我想生成一个可下载的报告(如Java中的Crystal Reports),而不是生成简单的JSP或HTML票证。我在会话中获得了我的全部票证信息(如在互联网上)我可以使用脚本获取BIRT报告。
我对BIRT完全不熟悉,想知道如何生成BIRT报告,或者从我的某个动作类中调用它的执行引擎。任何准备好的例子都会有很大的帮助。
答案 0 :(得分:1)
我猜您正在尝试向客户发送PDF票证。请使用以下行创建模板并传递参数:
ReportAdminServiceRemote birtAdmService = (ReportAdminServiceRemote)MXServer.getMXServer().lookup(“BIRTREPORT”);
byte[] abyte0 = birtAdmService .runReport(userInfo, reportName, appName, parameterData, filename, “pdf”);
生成字节后,您可以这样做:
public String actionDownload() throws Exception{
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Content-Disposition","attachment; filename=\"" + example.pdf+ "\"");
response.setHeader("Expires", "0");
response.setHeader("Cache-Control","must-revalidate, post-check=0, pre-check=0");
response.setHeader("Pragma", "public");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ByteArrayInputStream bis = new ByteArrayInputStream(abyte0);
inputStream = bis;
return SUCCESS;
}
所有学分都归这些页面的作者所有:
http://www.maximonews.com/?p=65
http://www.coderanch.com/t/432713/Struts/Struts-Files-DownLoad-Streaming-as