- 浏览: 991144 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (223)
- JDBC技术 (29)
- Java Base (21)
- SSH框架的集合 (5)
- Javascript部分 (16)
- Sping2.5框架 (6)
- Hibernate框架 (19)
- JDBC中的数据库连接 (5)
- Ajax技术应用 (9)
- Java工具包下载 (3)
- Database (4)
- Java Web (13)
- 我的生活 (4)
- Struts2 (25)
- S2SH (1)
- Prototype (1)
- jfreeChart (5)
- JPA (7)
- JBPM (1)
- JasperReport (6)
- DWR (1)
- freeMark (2)
- IBatis (2)
- FCKeditor (2)
- POI (1)
- JQuery (6)
- JSON (1)
- JavaMail (3)
- Flex (2)
- CSS收藏夹 (1)
- 润乾报表 (2)
- 开源技术 (1)
- Android (2)
- Android_UI (1)
- Android_OS (6)
- Android_OpenLibs (3)
- Volley (1)
- JS_OpenLibs (1)
- Hessian (3)
- OS (1)
最新评论
-
damoluomu:
简单易懂
Java Web开发Session超时设置 -
di1984HIT:
学习了~~~~~~
Java Web开发Session超时设置 -
lord_is_layuping:
...
Java Web开发Session超时设置 -
15111285554:
...
Java Web开发Session超时设置 -
sfg1314:
暂停后重新下载就会报错:ClientAbortExceptio ...
Java Web 文件下载之断点续传
将jasperReport设计文件和编译文件放到webRoot下面的jasper文件夹下面。
public class Person { private String person_Id; private String person_name; private String person_age; private String person_address; }
public class PersonService { public List<Person> getAllPerson() { List<Person> perList = new ArrayList<Person>(); perList.add(new Person("101", "小博", "22", "湖北")); perList.add(new Person("102", "张三", "21", "湖南")); perList.add(new Person("103", "李四", "23", "江苏")); perList.add(new Person("104", "王五", "22", "上海")); return perList; } }
构造我们的applet如下:
public class JRPrinterApplet extends javax.swing.JApplet { private URL url = null; public void init() { String strUrl = getParameter("REPORT_URL"); if (strUrl != null) { try { url = new URL(getCodeBase(), strUrl);// 从获得html参数中获得报表URL // System.out.println("url=" + url.toURI());//要是servlet的路径 } catch (Exception e) { StringWriter swriter = new StringWriter(); PrintWriter pwriter = new PrintWriter(swriter); e.printStackTrace(pwriter); JOptionPane.showMessageDialog(this, swriter.toString()); } } else { JOptionPane.showMessageDialog(this, "Source URL not specified"); } } public void start() { if (url != null) { try { Object obj = JRLoader.loadObject(url);// 发送对象请求,获得JasperPrint对象 JasperPrintManager.printReport((JasperPrint) obj, true);// 调用方法打印所获得的JasperPrint对象 } catch (Exception e) { e.printStackTrace(); } } } }
构造我们的action如下:
public class JRPrintAction extends ActionSupport { @Override public String execute() throws Exception { File reportFile = new File(ServletActionContext.getRequest() .getRealPath("/jasper/preson.jasper")); Map<String, String> parameters = new HashMap<String, String>(); parameters.put("year", "2009"); parameters.put("unit_mc", "武汉XX科技有限公司"); List<Person> personList = new PersonService().getAllPerson(); JasperPrint jasperPrint = null; try{ JasperReport jasperReport = (JasperReport) JRLoader .loadObject(reportFile); jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, new JRBeanCollectionDataSource(personList)); }catch (Exception e) { throw e; } if(null != jasperPrint){ HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("application/octet-stream"); ServletOutputStream ouputStream = response.getOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(ouputStream); oos.writeObject(jasperPrint); oos.flush(); oos.close(); ouputStream.flush(); ouputStream.close(); } return null; } }
struts.xml配置如下:
<action name="jrPrint" class="com.mengya.action.JRPrintAction"> <result name="success">/index.jsp</result> </action>
web.xml配置如下:
<filter> <filter-name>Struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>Struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
将JRPrinterApplet的编译文件放到webRoot下面的applet文件夹下面
页面调用如下:
<input type="button" value="打印" name="button1" onclick="print();"> <script> function print(){ var url = "jrPrint.action"; document.write('<APPLET ID="JrPrt" CODE = "JRPrinterApplet.class" CODEBASE = "applets" ARCHIVE = "jasperreports-3.5.2-applet.jar,commons-logging-1.0.2.jar,commons-collections-2.1.jar" WIDTH = "0" HEIGHT = "0">'); document.write('<PARAM NAME = "type" VALUE="application/x-java-applet;version=1.2.2">'); document.write('<PARAM NAME = "scriptable" VALUE="false">'); document.write('<PARAM NAME = "REPORT_URL" VALUE ="'+url+'">'); document.write('</APPLET>'); } </script>
发表评论
-
Struts2 + JasperReport应用一:导PDF,Excel,HTML显示
2010-01-29 16:34 9883我用的是struts2.1.6,从struts2的自带的dem ... -
Struts2 标签使用简介
2009-12-23 19:33 2667web.xml配置如下: <fil ... -
Struts2 的OGNL使用简介
2009-12-22 13:25 2360<div align="center" ... -
POI与Struts2的使用 poi-2.5.1.jar
2009-09-25 17:43 4893一.POI 简介 Jakarta POI 是apache的子项 ... -
jFreeChart与Struts2的组合,将jFreeChart作为显示视图
2009-09-25 16:26 1487jFreeChart与Struts2的组合: 一,加 ... -
Struts2与Spring2.0的组合
2009-09-09 09:46 1058Struts2与Spring的集成: 一,加入Str ... -
Struts2的异常处理
2009-09-07 13:41 1385Struts2的异常处理: 1,定义自己的异常信息类:继承Ex ... -
Struts2.0深入学习 Strust2与Servlet API,Action多方法调用,result标签的type的类型
2009-09-06 11:08 4446Struts2深入探索: 1,package中的ab ... -
Struts2.0深入学习 命名空间,模型驱动,表单重复提交
2009-09-06 11:04 1884Struts2深入探索: 1,package中的ab ... -
Struts2国际化详解
2009-09-03 15:32 2725Struts2国际化: 1,国际 ... -
Struts2文件下载
2009-09-02 20:09 10618Struts2文件下载: Struts2文件下载对应将一个In ... -
设置Struts2文件上传的类型和大小
2009-09-02 20:09 5229设置Struts2文件上传的类型和大小: 在struts. ... -
Struts2多文件上传
2009-09-02 20:08 2465Struts2多文件上传: 在Action中配置三个属性: p ... -
Struts2文件上传详解
2009-08-31 17:27 2398Struts2文件上传: 一:请选参看Struts2_9中的S ... -
Struts2.0文件上传原理
2009-08-31 13:12 3069Struts2文件上传默认采用apache的文件上传的包,新建 ... -
Struts2的监听器的使用
2009-08-25 19:02 2538Struts2的监听器: 一,建立监听器: ... -
Struts2的拦截器的使用详解
2009-08-25 18:59 2382Struts2的拦截器: 一,拦截器的使用: ... -
Struts2拦截器原理分析
2009-08-25 18:55 2383第一步:创建目标对象的接口 /** * 目标对象的接口 ... -
Struts2的检证框架详解
2009-08-25 13:00 2457Struts2的检证框架: 一,根据字段校验(为每一 ... -
Struts2的Action多个方法配置和验证
2009-08-18 20:16 4798Struts2的Action多个方法配置和验证: 1 ...
相关推荐
Struts2和JasperReport是两个在Java Web开发中广泛使用的框架。Struts2作为MVC(模型-视图-控制器)架构的一部分,主要用于处理HTTP请求和管理应用程序流程,而JasperReport则是一个强大的报告生成工具,能够创建...
Struts2.1和JasperReport的整合是Java Web开发中的一个重要话题,它涉及到Web应用程序的MVC(模型-视图-控制器)架构和数据报告的生成。Struts2.1是一个强大的MVC框架,而JasperReport则是一个用于创建复杂报表的...
Struts2和JasperReport的整合是Web应用程序中创建动态报表的一种常见方法。JasperReport是一个功能强大的开源报表引擎,允许开发人员通过iReports这样的设计工具以可视化的形式创建复杂的报表模板。Struts2,作为一...
在"整合Struts2+JasperReport Web报表应用示例"中,我们将探讨如何将这两个框架结合起来,为Web应用提供动态数据可视化的能力。首先,我们需要理解Struts2的核心概念,如Action、Interceptor(拦截器)和Result。...
Struts2、iReport与JasperReport是Java开发中用于构建高效、动态Web应用程序和报表生成的工具。在这个项目中,这些技术结合在一起,提供了一种强大的报表导出解决方案。以下是对这些关键技术及其在项目中的应用的...
Struts2、JasperReport 和 iReport 是开发Web报表应用中的常用技术栈。本文主要针对使用Struts2框架结合JasperReport5.0与iReport5.0进行报表开发时可能遇到的问题进行总结。 1. **报表预览问题**: - 数据源为空...
Struts2是一个流行的Java Web应用程序框架,它提供了MVC(模型-视图-控制器)架构,而JasperReport则是一个强大的报表生成库,可以生成多种格式的报表,如PDF、HTML、Excel等。iReport是JasperReport的可视化设计...
标题“jasperReport+struts2+jatoolsPrinter打印”涉及的是一个集成开发场景,主要集中在Java企业级应用中的报表生成和打印功能。jasperReport是一个强大的开源报表工具,能够帮助开发者创建复杂的报告设计;Struts2...
2. 配置Struts2:在struts.xml中定义Action,指定处理报表请求的方法。 3. 实现Action:在Action中,加载数据源,执行SQL,将结果集转换为JRDataSource。 4. 填充报表:使用JasperFillManager填充报表并导出为所需的...
Struts2是一个强大的MVC框架,用于构建动态、数据驱动的Web应用程序,而JasperReport则是一个开源的报表工具,可以生成丰富的报表,支持多种输出格式如PDF、HTML、Excel等。下面我们将深入探讨这两者如何整合以及...
### Java Applet + JasperReport 实现Web端打印 #### 背景介绍 在Web开发领域,特别是企业级应用中,精确打印与批量打印是非常重要的功能之一。这不仅关乎用户体验,还涉及到业务流程的顺利执行。传统的Web打印...
整合Struts2和JasperReport可以使Web应用具备强大的报表功能,但同时也需要注意管理和优化好相关的资源,以提供流畅的用户体验。在实际开发中,根据具体需求选择合适的技术栈和最佳实践,能有效地提高项目质量和开发...
将Struts2与JasperReport结合,可以实现Web应用中的动态报表生成和展示。 首先,我们需要理解Struts2的核心概念。Struts2框架基于拦截器模型,通过Action类处理用户请求,Action与视图(JSP)之间的交互由结果类型...
Struts2是一个流行的Java Web应用程序框架,用于构建...总的来说,这些库文件构成了Struts2集成JasperReport的基础,使得开发者可以在Web应用中轻松地创建和展现丰富的报表,同时利用Struts2的强大功能进行交互和控制。
在这个场景下,`Maven`、`Struts2`、`JasperReport` 和 `iReport` 是四个关键的技术组件,它们共同作用于创建一个强大的、数据驱动的Web应用程序。下面将详细介绍这些技术及其整合过程。 首先,`Maven` 是一个项目...