




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
新公司工作一年多,接触最多的就是统计,当然用于统计数据展示的birt了解多了些,虽然对于底层实现认识不深,但是对于birt与ssh集成还是有些感受,尽管这种感受仅是来源于自己重构项目中birt+ssh整合demon,尽管没有实际应用到项目中,确切的说是没有完全应用到项目中。因为我不想一个人单打独斗整个统计模块,也不想把自己纠结在统计模块中,当然我也不一定做得好,但是感受吗对于过去的总结,无需多量的抱怨的,因为那已经是过去。 由于ssh整合各种项目各种整合方法,当然谈及整合,java小生还很稚嫩,不在此卖瓜。仅总结birt如何与struts整合,统计数据,希望与大家共同学习进步。 一)应用技术与环境: ssh:struts1.2+spring2.0+hibernate3.0 birt:birt2.3 tomcat:tomcat5.5 dababase:oracle10g system:windowsXP 二)birt优点: 1:birt交互性强,因为birt基本就是个完整的jsp页面,所以不会存在展现上的难题 2:birt数据源支持更多,jdbc data source ,scripted data source,web service data source, xml data source,procedure 3:与eclipse集成,开发更方便,效率更快 4:开源,扩展性更强,免费,使用成本低 三)birt缺点 1:底层入侵,数据收集与展示剥离后存在诸多问题 2:大数据量展示容易内存泄露 4:页面内部嵌入大量外部资源,修改,扩展有难度 四)birt与struts整合 a 增加代码 public Object getBean(String name ) if (ctx = null) ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext(); return ctx.getBean(name); protected QueryInfo getQueryInfo(HttpServletRequest request) QueryInfo info = new QueryInfo(); int pageSize = getPageSize(request); int currentPage = getCurrentPage(request); info.setLimit(pageSize); info.setOffset(pageSize * (currentPage - 1); return info; /* * 获取每页显示的条数 * param request 请求对象 * return 每页显示的条数 */ protected int getPageSize(HttpServletRequest request) int ps = 0; String pageSize = request.getParameter(PAGE_SIZE); if (!StringUtil.isEmpty(pageSize) ps = StringUtil.string2Int(pageSize); else ps = DEFAULT_PAGE_SIZE; request.setAttribute("pageSize", ps); return ps; /* * 获取当前页数 * param request 请求对象 * return 当前页数 */ protected int getCurrentPage(HttpServletRequest request) int cp = 0; String currentPage = getDisplayTagParam(request, REGEX); if (!StringUtil.isEmpty(currentPage) cp = StringUtil.string2Int(currentPage); else cp = DEFAULT_CURRENT_PAGE; return cp; public String getDisplayTagParam(HttpServletRequest request, String regex) Enumeration en = request.getParameterNames(); while (en.hasMoreElements() String name = (String) en.nextElement(); if (name.matches(regex) return request.getParameter(name); return null; b:修改_getContext 方法 protected IContext _getContext(HttpServletRequest request, HttpServletResponse response)throws BirtException BirtReportServiceFactory.getReportService().setContext( getServletContext(), null); SpInfoManager spInfoManager = (SpInfoManager)getBean("SpInfoManager"); QueryInfo info = getQueryInfo(request); PartialCollection collection = spInfoManager.getWhiteAndBlackInfo("21006", "", info) ; List dataList = collection.getRealDataSet() ; request.setAttribute("result",dataList ); return new BirtContext(request, response); c:web。xml修改ViewerServlet 指向的class ViewerSmessage.sp.web.action.ViewerServlet d:web.xml中增加 对于访问ViewerServlet 过滤器 validateSession/frameset*hibernateFilter/frameset* 2:增加一个action ,进行数据收集,并跳到birt页面显示容器(birt嵌入到jsp中) if(birtName.equals("script_data_source_demon.rptdesign") /*参数存入request*/ request.setAttribute("endTime", endTime) ; /保存保存参数 return mapping.findForward("birtPageWindow");/转发到birt容器(嵌入birt的jsp页面) 3:birt 嵌入jsp a:在jsp中引入 b:birt标签引入birt页面 4:birt中获取参数及数据源 a:script:open importPackage(Packages.javax.servlet.http); req = reportContext.getHttpServletRequest(); list = req.getAttribute("result"); spInfo = new Pmessage.oam.web.model.WhiteAndBlackInfo(); resultArray = list.iterator(); b:script:fetch if(resultArray.hasNext()=false) return false ; spInfo = resultArray.next(); row"name"=spInfo.getSpName(); row"spid"=spInfo.getSpId(); row"spcode"=spInfo.getSpCode(); return true ; c:scirpt:close result = null ; spInfo = null ; 5:数据展示 a:Data Set绑定显示列 img/upload/attachment/600360/3dcb4e6f-3858-378a-9a9e-b5e4c35f8acb.png" alt="" width="737" height="175/img 6:birt分页自定义 a:。 b:。 size=1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年海城市消防员考试笔试试题(含答案)
- 2025年国盛证券招聘考试笔试试题(含答案)
- 2025年广州市天河区华融小学招聘教师考试笔试试题(含答案)
- 汽车音乐与汽车结合资讯集创新创业项目商业计划书
- 2025年福建福州港后铁路有限公司招聘考试笔试试题(含答案)
- 农垦土地资源利用创新创业项目商业计划书
- 电商全渠道订单管理系统创新创业项目商业计划书
- 原木特色家居饰品电商平台创新创业项目商业计划书
- 辐射安全知识培训心得
- 2025年疼痛医疗服务行业品牌建设与市场影响力研究
- TCCEAS001-2022建设项目工程总承包计价规范
- 大学普通化学-课件文档
- 《专题地图设计与编制实验》课程教学大纲
- DB37T 4010-2020 含阿胶的食品中阿胶含量的测定方法
- 《植物生理学》课件第五章+同化物的运输
- 质量成长记-过程模式作业表
- 漆黑的魅影-精灵分布图鉴
- 小学语文分层作业设计
- 《只有一个地球》说课课件课件
- 200T钻具点压校直机技术方案
- 挡土墙计算书(共19页)
评论
0/150
提交评论