birt 集成到现有的web应用中
我们已经有了一个Javaweb应用,现在要实现对报表的集成
我的应用是这个样子的
说明:
1) 这里使用的是birt4.4版本的, 下载birt-runtime-4.4.zip(在官方下载),然后将birt.war解压,可以看到 logs report scriptlib webcontent WEB-INF **.jsp **.rptdesign 这些文件及文件夹
2) 将 WEB_INF下的内容放到我们自己的web应用的WEB-INF相应的目录下,将它的web.xml与我们应用的web.xml内容进行合并,birt里面的web.xml的具体配置见文档
3) birt的webcontent目录官方上一定要放到web应用的根目录的,如果要放到自己指定的目录,比如说我自己应用里面的birt目录,你需要修改birt的jar中的viewsevlets.jar中的三个类 : org.eclipse.birt.report.servlet.ViewerServlet.java org.eclipse.birt.report.servlet.BirtEngineServlet.java org.eclipse.birt.report.taglib.ParamDefTag.java (需要用到反编译工具 ,我这里用的是 jd-gui.exe )
4) 设计好自己的报表或者报表模板,放到配置文件指定的路径,我这里就在birt目录下,如上面的 eastcom_test_report.rpttemplate
5)我们自己的jsp页面是直接跳转到birt引擎进行处理的
<s:form id="MYFORM" action="/frameset" method="post" theme="simple"> <div id="content"> <table> <tr> <th width="13%"><span>*</span>模板名称:</th> <td width="35%"><div> <s:textfield name="reportDesign.name" maxlength="128" readonly="true" /> </div></td> <th width="17%"><span>*</span>模板路经:</th> <td width="35%"><div> <s:textfield name="reportDesign.designLocation" maxlength="128" readonly="true" /> </div></td> </tr> <tr> <th colspan="4" style="text-align:center;"><span>请设置以下报表参数</span></th> </tr> <tr> <th colspan="4" > </th> </tr> <tr> <th width="13%"><span>*</span>资源Key:</th> <td width="35%"> <div> <s:textfield name="resource_key" maxlength="128" onblur="Check.required(this)"/> <s:hidden name="__report" value="%{reportDesign.designLocation}"></s:hidden> ,这是指定具体的模板名称,它会到我们放模板或者报表的路径下去匹配的 </div></td> </tr> </table> </div> <div id="operator"> <div class="left"></div> <div class="middle" onclick="Page.submit(true)">提交</div> <div class="right"></div> <div class="left"></div> <div class="middle" onclick="Page.close()">关闭</div> <div class="right"></div> </div> </s:form>
6) 如果要发布到websphere服务器上,需要在lib中加入 itext.1.3.jar ,tomcat jetty是不能加的
未经作者 https://www.cnblogs.com/xin1006/ 梦相随1006 同意,不得擅自转载本文,否则后果自负