我们已经有了一个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" >&nbsp;</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是不能加的

birt 集成到现有的web应用中的更多相关文章

  1. 如何在现有的 Web 应用中使用 ReactJS

    原文:How to Sprinkle ReactJS into an Existing Web Application 译者:nzbin 当我们学习一项新技术,可能是一个 JavaScript 框架, ...

  2. 细说shiro之四:在web应用中使用shiro

    官网:https://shiro.apache.org/ 1. 下载在Maven项目中的依赖配置如下: <!-- shiro配置 --> <dependency> <gr ...

  3. Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问

    本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Jar包 这 ...

  4. 06_在web项目中集成Spring

    在web项目中集成Spring 一.使用Servlet进行集成测试 1.直接在Servlet 加载Spring 配置文件 ApplicationContext applicationContext = ...

  5. react native 之 在现有的iOS工程中集成react native

    在现有的iOS工程中集成react native, 或者说将react native引入到iOS 项目,是RN和iOS混合开发的必经之路 参考官网教程:https://reactnative.cn/d ...

  6. IDEA下集成tomcat7插件将tomcat内嵌到web项目中

    新建一个maven web项目 修改pom.xml文件 <build> <plugins> <!-- 配置Tomcat插件: 就是本地部署,将tomcat 内嵌到 web ...

  7. 如何把Power BI嵌入到Web应用中

    (此文章同时发表在本人微信公众号"dotNET开发经验谈",欢迎右边二维码来关注.) 题记:这篇其实不是一个操作向导了,主要对Power BI的嵌入特性进行探讨. Power BI ...

  8. 如何把Qlik Sense嵌入到Web应用中

    (此文章同时发表在本人微信公众号"dotNET开发经验谈",欢迎右边二维码来关注.) 题记:这是一个给初学者(尤其对VS不熟悉的BI工程师)的入门操作向导. Qlik Sense是 ...

  9. web自动化测试中绕开验证码登陆的方式

    web自动化测试中登陆需验证码是很大的一个困扰.现推荐一种简单的避开验证码登陆的方式,先代码进入登录页,人工输入验证码登录后浏览器自动保存cookie,再在新的标签中登录. 具体代码如下: publi ...

随机推荐

  1. ASP.NET MVC5写.php路由匹配时的问题 ASP.NET MVC 4 在 .NET 4.0 与.NET 4.5 的專案範本差異

    由于外包公司结束合作,所以考虑把其APP服务替换过来,因原后台是用php写的,在不影响员客户端使用的情况下在MVC下重写路由配置实现处理原php链接地址的请求,但实现时发现怎么也匹配不到自己写的路由, ...

  2. APUE 1 -- Unix数据结构

    Unix 类操作系统支持不同进程间共享文件.对于所有的I/O,内核使用3种数据结构来表示一个打开的文件. 进程表.每个进程在进程表中有其相应的入口.文件结构中,每个进程表的入口是文件描述符表,每个文件 ...

  3. Sublime Text 2安装图解

    Sublime Text 2安装图解.. ---------------- ---------------- ---------------- ---------------- ----------- ...

  4. 一文看懂web服务器、应用服务器、web容器、反向代理服务器区别与联系

    我们知道,不同肤色的人外貌差别很大,而双胞胎的辨识很难.有意思的是Web服务器/Web容器/Web应用程序服务器/反向代理有点像四胞胎,在网络上经常一起出现.本文将带读者对这四个相似概念如何区分. 1 ...

  5. HttpResponseMessage获取请求响应体内容

    问题描述 使用httpClient获取的HttpResponseMessage类型的response,直接对其toString()获取的是请求的响应头,并没有获取响应体的内容 解决办法 HttpRes ...

  6. Java基础---继承、抽象、接口

    一.概述         继承是面向对象的一个重要特征.当多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继那个类即可.这时,多个类可以称为子类,单 ...

  7. Linux下检测进程是否存在

    这个问题看起来好像很简单,"ps -ef | grep xx"一下就行啦!这样做当然可以,但是如果我们考究起性能来,这恐怕不是个好办法. 假设我们现在要监测某进程是否存活,每分钟检 ...

  8. javaScript手记(01)

    --------------------javaScript基础1.嵌入页面的方式 1.行间事件(主要用于事件): <input type="button" name=&qu ...

  9. HK2使用详解

    HK2介绍 组件 生命周期 定义服务 注入服务 HK2介绍 HK2是一个轻量级动态依赖注入框架,它是JSR-330的实现. 组件 在HK2组件模型中,一个组件的功能是通过服务接口-服务实现的模式声明的 ...

  10. 9-9害死人不偿命的(3n+1)猜想

    1001. 害死人不偿命的(3n+1)猜想 (15) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 卡拉兹(Ca ...