- 浏览: 980090 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (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 文件下载之断点续传
我用的是struts2.1.6,从struts2的自带的demo当中可以看到它的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>
这样的配置可以在web.xml配置我们的serlvet,如果写成以前的写法你配置上serlvet会报错。
将我们设置的报表文件和编译文件放到WebRoot下面的jasper下面,添加struts2对jasperReport的插件。
构造我们的JavaBean如下(get,set方法省略了):
public class Person { private String person_Id; private String person_name; private String person_age; private String person_address; }
构造我们的service:
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; } }
构造action:
public class PersonAction extends ActionSupport { private List<Person> presonList = null; private Map<String, String> reportParameter = null; @Override public String execute() throws Exception { presonList = new PersonService().getAllPerson(); reportParameter = new HashMap<String, String>(); reportParameter.put("year", "2009"); reportParameter.put("unit_mc", "武汉XX科技有限公司"); return SUCCESS; } public String htmlView(){ return SUCCESS; } public List<Person> getPresonList() { return presonList; } public void setPresonList(List<Person> presonList) { this.presonList = presonList; } public Map<String, String> getReportParameter() { return reportParameter; } public void setReportParameter(Map<String, String> reportParameter) { this.reportParameter = reportParameter; } }
struts配置如下:
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.action.extension" value="action" /> <package name="jasperReport" extends="struts-default,jasperreports-default"> <action name="PDF" class="com.mengya.action.PersonAction"> <result name="success" type="jasper"> <param name="location">/jasper/preson.jasper</param> <param name="dataSource">presonList</param> <param name="reportParameters">reportParameter</param> <param name="format">PDF</param> </result> </action> <action name="XLS" class="com.mengya.action.PersonAction"> <result name="success" type="jasper"> <param name="location">/jasper/preson.jasper</param> <param name="dataSource">presonList</param> <param name="reportParameters">reportParameter</param> <param name="format">XLS</param> </result> </action> <action name="XML" class="com.mengya.action.PersonAction"> <result name="success" type="jasper"> <param name="location">/jasper/preson.jasper</param> <param name="dataSource">presonList</param> <param name="reportParameters">reportParameter</param> <param name="format">XML</param> </result> </action> <action name="CSV" class="com.mengya.action.PersonAction"> <result name="success" type="jasper"> <param name="location">/jasper/preson.jasper</param> <param name="dataSource">presonList</param> <param name="reportParameters">reportParameter</param> <param name="format">CSV</param> </result> </action> <!-- location:是指我们刚才用iReport编译生成的jasper文件 dataSource:是指我们执行的数据库查询结果,在testAction类里把这个结果查询出来,这个参数必须要有 format:是指需要输出的类型,默认是PDF,其他的输出类型有:XML、HTML、XLS、CSV、RTF ,注意这里一定要大写 reportParameters:jasperreport中的Parameters 除了这几个参数,还有下列参数: delimiter:是指如果输出类型为CSV的话,指定分割符,默认为“,” parse:是指是否解析location参数中的EL表达式,默认为 true contentDisposition:指定disposition,默认为“inline”,如果设为“attachment”就是强制下载 documentName:输出的文件名 imageServletUrl:生成图形的路径 --> </package> </struts>
页面调用:
<a href="PDF.action">PDF</a> <a href="XLS.action">XLS</a> <a href="XML.action">XML</a> <a href="CSV.action">CSV</a>
如果要想以HTML形式显示报表内容则还需要在web.xml配置jasperReport自带的一个servlet如下:
<!-- JasperReport包中自带的Servlet,用来做为HTML形式显示报表的时候报表的图片,要在这里配置上,图片在jasperReport包中 --> <servlet> <servlet-name>JasperReportImageServlet</servlet-name> <servlet-class> net.sf.jasperreports.j2ee.servlets.ImageServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>JasperReportImageServlet</servlet-name> <url-pattern>/image</url-pattern> </servlet-mapping>
action中不需要修改,只需在struts.xml里添加一个HTML不配置如下:
<action name="HTML" class="com.mengya.action.PersonAction"> <result name="success" type="jasper"> <param name="location">/jasper/preson.jasper</param> <param name="dataSource">presonList</param> <param name="reportParameters">reportParameter</param> <param name="format">HTML</param> <param name="imageServletUrl"> <![CDATA[/image?image=]]> </param> </result> </action>
imageServletUrl的值就是上面的serlvet的路径,该servlet就是生成了一个图形,如果不配置该serlvet则页面上有图片没显示的样子。
页面调用如:
<a href="HTML.action">HTML</a>
评论
7 楼
2014时间2014
2014-03-10
打印功能怎么不能实现呢
6 楼
leesenone
2011-09-27
能不能把你怎么制作preson.jrxml 和preson.jasper 截给图显示出来,用最新的iReport 谢谢了。我现在就是生成文件这块总是出问题,编译能显示表格什么的,空数据的情况下。但是放在项目中就不能用了。
5 楼
leesenone
2011-09-27
我用iReport-4.1.1 编译你的 preson.jrxml 文件 或者是Preview 没有报错,能显示出来。但是把生成的preson.jasper放到项目中,就会报错
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
net.sf.jasperreports.engine.JRRuntimeException: Unknown hyperlink target 0
net.sf.jasperreports.engine.JRHyperlinkHelper.getLinkTarget(JRHyperlinkHelper.java:273)
net.sf.jasperreports.engine.base.JRBaseTextField.normalizeLinkTarget(JRBaseTextField.java:317)
net.sf.jasperreports.engine.base.JRBaseTextField.readObject(JRBaseTextField.java:381)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1848)
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
java.util.ArrayList.readObject(ArrayList.java:593)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
如果用你的preson.jasper 文件能够正常运行。何解???
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
net.sf.jasperreports.engine.JRRuntimeException: Unknown hyperlink target 0
net.sf.jasperreports.engine.JRHyperlinkHelper.getLinkTarget(JRHyperlinkHelper.java:273)
net.sf.jasperreports.engine.base.JRBaseTextField.normalizeLinkTarget(JRBaseTextField.java:317)
net.sf.jasperreports.engine.base.JRBaseTextField.readObject(JRBaseTextField.java:381)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1848)
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
java.util.ArrayList.readObject(ArrayList.java:593)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
如果用你的preson.jasper 文件能够正常运行。何解???
4 楼
csxthui123
2011-09-21
乱码问题 怎么解决啊!?
3 楼
colver
2011-08-05
在ireport中我的引用变量reportParameter中的值都是null 这个是怎么样配置的 希望高手能指点下
2 楼
colver
2011-08-05
ireport 中建立报表是怎么样操作的? 呵呵 模仿你的做尼, 谢谢
1 楼
iejlzh
2010-08-18
谢谢你,,,正需要
发表评论
-
Struts2 + JasperReport应用二:jasperReport Web形式打印
2010-02-02 16:16 5230将jasperReport设计文件和编译文件放到webRoot ... -
Struts2 标签使用简介
2009-12-23 19:33 2613web.xml配置如下: <fil ... -
Struts2 的OGNL使用简介
2009-12-22 13:25 2317<div align="center" ... -
POI与Struts2的使用 poi-2.5.1.jar
2009-09-25 17:43 4849一.POI 简介 Jakarta POI 是apache的子项 ... -
jFreeChart与Struts2的组合,将jFreeChart作为显示视图
2009-09-25 16:26 1453jFreeChart与Struts2的组合: 一,加 ... -
Struts2与Spring2.0的组合
2009-09-09 09:46 1013Struts2与Spring的集成: 一,加入Str ... -
Struts2的异常处理
2009-09-07 13:41 1347Struts2的异常处理: 1,定义自己的异常信息类:继承Ex ... -
Struts2.0深入学习 Strust2与Servlet API,Action多方法调用,result标签的type的类型
2009-09-06 11:08 4405Struts2深入探索: 1,package中的ab ... -
Struts2.0深入学习 命名空间,模型驱动,表单重复提交
2009-09-06 11:04 1835Struts2深入探索: 1,package中的ab ... -
Struts2国际化详解
2009-09-03 15:32 2685Struts2国际化: 1,国际 ... -
Struts2文件下载
2009-09-02 20:09 10575Struts2文件下载: Struts2文件下载对应将一个In ... -
设置Struts2文件上传的类型和大小
2009-09-02 20:09 5186设置Struts2文件上传的类型和大小: 在struts. ... -
Struts2多文件上传
2009-09-02 20:08 2424Struts2多文件上传: 在Action中配置三个属性: p ... -
Struts2文件上传详解
2009-08-31 17:27 2352Struts2文件上传: 一:请选参看Struts2_9中的S ... -
Struts2.0文件上传原理
2009-08-31 13:12 3037Struts2文件上传默认采用apache的文件上传的包,新建 ... -
Struts2的监听器的使用
2009-08-25 19:02 2498Struts2的监听器: 一,建立监听器: ... -
Struts2的拦截器的使用详解
2009-08-25 18:59 2343Struts2的拦截器: 一,拦截器的使用: ... -
Struts2拦截器原理分析
2009-08-25 18:55 2338第一步:创建目标对象的接口 /** * 目标对象的接口 ... -
Struts2的检证框架详解
2009-08-25 13:00 2410Struts2的检证框架: 一,根据字段校验(为每一 ... -
Struts2的Action多个方法配置和验证
2009-08-18 20:16 4751Struts2的Action多个方法配置和验证: 1 ...
相关推荐
整合Struts2+JasperReport Web报表应用示例 整合Struts2+JasperReport Web报表应用示例
而随着Struts2的流行,就应该研究一下在Struts2下如何利用JasperReports进行报表输出。本示例比较简单,采用的数据源即为JavaBean,而没有采用复杂的数据库,其实原理是一样的。只是传递给JasperReports的参数随着...
整个工程+jar包都放上去了,直接import这个工程就可以用
Struts2.0+JasperReport+IReport+Oracle 报表开发 整个项目打包上传,用MyEclipse导入即可调试使用 含报表文件、数据库表结构及测试数据,项目中解决了PDF中文不显示问题
整合Struts2+JasperReport3 详细讲解利用iReport开发报表
Struts2.0+JasperReport+IReport+Oracle 报表开发 整个项目打包上传,用MyEclipse导入即可调试使用 含报表文件、数据库表结构及测试数据,项目中解决了PDF中文不显示问题
Struts2.0+JasperReport+IReport+Oracle 报表开发整个项目打包上传,用MyEclipse导入即可调试使用含报表文件、数据库表结构及测试数据,项目中解决了PDF中文
struts2结合jasperreport的一个小项目,做了一张销售统计表,导出方式有5种(html,xml,pdf,cvs,xls)。 主要用到MyEclipse插件JasperAssistant图形开发工具来设计报表,设计的报表有源文件jasperDemo.jrxml和编译后...
该工程下有ssh所需jar包,hicharts报表导出功能所需jar包,以及Jasperreport报表导出所需的jar包,主要是利用Jasperreport实现报表导出功能,可以完整跑通
struts jasperreport ireport5.0 字报表数据传递 子报表路径问题 中文问题
使用Spring2.5+Struts2+ibatis+jasperreport3.1.4 实现Struts2与Jasperreport报表结合
使用ireport和struts2进行报表设计的简单示例,生成普通报表和饼图、柱状图。java工程的lib里包含丰富的jar包,且很多都是从各个网站下载的最新版本,文件夹内还包含一些ireport和jasperreport文档,适合刚入门学习...
iReport+JasperReport柱状图 iReport+JasperReport柱状图 iReport+JasperReport柱状图
struts2 jasperreport