- 浏览: 27168 次
- 性别:
- 来自: 内蒙古
最新评论
-
java_xiaoD:
我也这个问题 怎么解决的
linux/window下weblogic10.3运行applet报错,Tomcat、weblogic9下运行正常 -
oming:
写的什么这是
StringUtil.java常用字符操作类 -
ll3231:
自己恢复,目前只能用to_char()转换类型的方法弥补了
返回List<HashMap<String,Object>>数据,为什么时间类型只返回了yyyy-MM-dd,没有HH:mm:ss -
kimmking:
BeanUtils.describe
将Object对象的属性(有对应get方法)按照属性名字(key)和对应值(value)放到Map中
/**
* 报表Applet打印和pdf、xls导出
*
* @author liulin
* @date 2010-3
* **/
abstract public class ReportAction extends BaseAction {
private static String basepath = "/WEB-INF/report/";// 报表存放地址
private static String jrepath = "../applet/jre-6u21-windows-i586.exe";//jre-6u19-windows-i586.exe";// jre下载本地路径#Version=6,0,1,9
public String reportname;// 无后缀的jrxml报表模板名字
public String exportname;// 导出pdf、xls的文件名字
public List reportList;// 数据明细集合
public Map reportParams;// 报表参数
/** 报表填充数据 **/
abstract public List getReportList();
public void setReportList(List reportList) {
this.reportList = reportList;
}
public Map getReportParams() {
return reportParams;
}
public void setReportParams(Map reportParams) {
this.reportParams = reportParams;
}
public String getReportname() {
return reportname;
}
public void setReportname(String reportname) {
this.reportname = reportname;
}
public String getExportname() {
return exportname;
}
public void setExportname(String exportname) {
this.exportname = exportname;
}
public String getBasepath() {
return basepath;
}
public void setBasepath(String basepath) {
this.basepath = basepath;
}
public String getJrepath() {
return jrepath;
}
public void setJrepath(String jrepath) {
this.jrepath = jrepath;
}
/** applet打印预览,兼容ie、火狐等大多数浏览器 **/
public String print() {
Enumeration en = this.getRequest().getParameterNames();
boolean isIE = isIE();
String appleturl;
String param = "";
for (; en.hasMoreElements();) {
String k = (String) en.nextElement();
String v = this.getRequest().getParameter(k);
if (v != null)
param += k + "=" + v.trim() + "&";
else
param += k + "=&";
}
if(param.lastIndexOf("&")==param.length()-1)
param=param.substring(0,param.length()-1);
appleturl = this.getRequest().getRequestURI().replace("_print.action",
"_APPLET.action")
+ "?" + param;
String html = "<html><head><title></title>\n"
+ "<style type=\"text/css\">body {margin:0px 2px;padding:0px;}</style>\n"
+ "</head><body>\n";
html+="<!--[if !IE]> Firefox and others will use outer object -->" +
"<object classid=\"java:EmbeddedViewerApplet\" type=\"application/x-java-applet\" WIDTH=\"100%\" HEIGHT=\"100%\" >" +
"<PARAM NAME=\"REPORT_URL\" " + " VALUE=\"" + appleturl + "\">" +
"<PARAM NAME=\"CODEBASE\" VALUE=\"../applet\">" +
"<param name=\"archive\" value=\"jasperreports-applet-3.7.1.jar,commons-logging.jar,commons-collections.jar\" />" +
"<!--<![endif]-->" +
"<!-- MSIE (Microsoft Internet Explorer) will use inner object -->" +
"<object classid=\"clsid:8AD9C840-044E-11D1-B3E9-00805F499D93\"" +
" codebase=\""+jrepath+"\" WIDTH=\"100%\" HEIGHT=\"100%\" >" +
"<PARAM NAME=\"CODEBASE\" VALUE=\"../applet\">" +
"<param name=\"code\" value=\"EmbeddedViewerApplet.class\" />" +
"<param name=\"archive\" value=\"jasperreports-applet-3.7.1.jar,commons-logging.jar,commons-collections.jar\" />" +
"<PARAM NAME=\"REPORT_URL\" " + " VALUE=\"" + appleturl + "\">" +
"<strong>这个浏览器没有安装 Java Plug-in.<br />" +
"<a href=\"http://www.oracle.com/technetwork/java/javase/downloads/index.html\">从最官方下载最新 Java Plug-in.</a></strong><br/>" +
"<a href=\""+jrepath+"\">从本地下载 Java Plug-in</a><br/>" +
"<a href=\"../applet/JavaRuntimeEnvironment.reg\">如果安装插件失败,手动修改注册列表来实现(注意:修改JavaRuntimeEnvironment.reg文件中的C:\\\\Program Files\\\\Java\\\\jre6\\\\为你系统jre安装目录;修改1.6.0_21为你当前安装版本)</a>" +
"</object>" +
"<!--[if !IE]> close outer object -->" +
"</object>" +
"<!--<![endif]-->";
html += "</body></html>";
this.renderHtml(html);
return NONE;
}
/** 是否IE **/
public boolean isIE() {
HttpServletRequest request = this.getRequest();
String agent = request.getHeader("USER-AGENT");
boolean isIE = false;
if (null != agent && -1 != agent.indexOf("MSIE"))
isIE = true;
return isIE;
}
/**
* 根据浏览器类型导出文件中文名称,支持浏览器IE、Firefox、Safari
*
* @throws UnsupportedEncodingException
**/
public String getFileNameCode(String fileName)
throws UnsupportedEncodingException {
HttpServletRequest request = this.getRequest();
String agent = request.getHeader("USER-AGENT");
if (null != agent && -1 != agent.indexOf("MSIE")) {
fileName = java.net.URLEncoder.encode(fileName, "UTF-8").replace(
"+", " ");
} else if (null != agent && -1 != agent.indexOf("Firefox")) {
fileName = new String(fileName.getBytes("UTF-8"), "iso8859-1");
} else if (null != agent && -1 != agent.indexOf("Safari")) {
fileName = java.net.URLEncoder.encode(fileName, "UTF-8").replace(
"+", " ");
} else {
}
return fileName;
}
/** 导出xls文件 **/
public String XLS() throws Exception {
HttpServletResponse response = this.getResponse();
String sourceFile = ServletActionContext.getServletContext()
.getRealPath(basepath + reportname + ".jrxml");
File parent = new File(sourceFile).getParentFile();
JRXlsExporter exporter = new JRXlsExporter();
JasperPrint jasperPrint = null;
try {
JasperCompileManager.compileReportToFile(sourceFile, new File(
parent, reportname + ".jasper").getAbsolutePath());
JasperReport jasperReport = (JasperReport) JRLoader
.loadObject(sourceFile.replace(".jrxml", ".jasper"));
List list = this.getReportList();
jasperPrint = JasperFillManager.fillReport(jasperReport,
this.reportParams, new JRBeanCollectionDataSource(list));
} catch (Exception e) {
e.printStackTrace();
}
if (null != jasperPrint) {
byte[] bytes;
ByteArrayOutputStream bo = new ByteArrayOutputStream();
exporter
.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, bo);
exporter.exportReport();
bytes = bo.toByteArray();
if (bytes != null && bytes.length > 0) {
response.reset();
response.setContentType("application/xls");
exportname = exportname + "__"
+ this.getCurrentTime(new Date(), "yyyy年MM月dd日")
+ ".xls";
response.addHeader("Content-Disposition",
"attachment; filename=\"" + getFileNameCode(exportname)
+ "\"");
response.setContentLength(bytes.length);
ServletOutputStream sos = response.getOutputStream();
sos.write(bytes, 0, bytes.length);
sos.flush();
sos.close();
}
}
return NONE;
}
/** 导出pdf文件 **/
public String PDF() throws Exception {
HttpServletResponse response = this.getResponse();
String sourceFile = ServletActionContext.getServletContext()
.getRealPath(basepath + reportname + ".jrxml");
File parent = new File(sourceFile).getParentFile();
JRPdfExporter exporter = new JRPdfExporter();
JasperPrint jasperPrint = null;
try {
JasperCompileManager.compileReportToFile(sourceFile, new File(
parent, reportname + ".jasper").getAbsolutePath());
JasperReport jasperReport = (JasperReport) JRLoader
.loadObject(sourceFile.replace(".jrxml", ".jasper"));
List list = this.getReportList();
jasperPrint = JasperFillManager.fillReport(jasperReport,
this.reportParams, new JRBeanCollectionDataSource(list));
} catch (Exception e) {
e.printStackTrace();
}
if (null != jasperPrint) {
byte[] bytes;
ByteArrayOutputStream bo = new ByteArrayOutputStream();
exporter
.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, bo);
exporter.exportReport();
bytes = bo.toByteArray();
if (bytes != null && bytes.length > 0) {
response.reset();
response.setContentType("application/pdf");
exportname = exportname + "__"
+ this.getCurrentTime(new Date(), "yyyy年MM月dd日")
+ ".pdf";
response.addHeader("Content-Disposition",
"attachment; filename=\"" + getFileNameCode(exportname)
+ "\"");
response.setContentLength(bytes.length);
ServletOutputStream sos = response.getOutputStream();
sos.write(bytes, 0, bytes.length);
sos.flush();
sos.close();
}
}
return NONE;
}
/**
* applet输出
*
* **/
public String APPLET() {
File reportFile = new File(ServletActionContext.getRequest()
.getRealPath(basepath + reportname + ".jasper"));
String sourceFile = ServletActionContext.getServletContext()
.getRealPath(basepath + reportname + ".jrxml");
File parent = new File(sourceFile).getParentFile();
JasperPrint jasperPrint = null;
try {
JasperCompileManager.compileReportToFile(sourceFile, new File(
parent, reportname + ".jasper").getAbsolutePath());
JasperReport jasperReport = (JasperReport) JRLoader
.loadObject(reportFile);
List list = this.getReportList();
jasperPrint = JasperFillManager.fillReport(jasperReport,
this.reportParams, new JRBeanCollectionDataSource(list));
} catch (Exception e) {
System.out.println("打印出错了:"+e.getMessage());
e.printStackTrace();
}
if (null != jasperPrint) {
HttpServletResponse response = this.getResponse();// ServletActionContext.getResponse();
response.setContentType("application/octet-stream");
ServletOutputStream ouputStream;
try {
ouputStream = response.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(ouputStream);
oos.writeObject(jasperPrint);
oos.flush();
oos.close();
ouputStream.flush();
ouputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return NONE;
}
}
发表评论
-
linux/window下weblogic10.3运行applet报错,Tomcat、weblogic9下运行正常
2011-03-29 23:24 1259Tomcat、weblogic9下运行正常 报错主要信息: ... -
统计淘宝上购买3D和双色球记录程序,自动发送邮件结果
2010-10-30 12:24 2679程序现在已近可以自动运行,运行完毕后可以给指定邮箱 ... -
图片通用处理类(缩放、左右拼接、上下拼接)
2010-10-25 23:05 1382package com.util; import java. ... -
对象数组中相对于某一个属性的排序
2010-10-25 08:24 836package util; import java.lang ... -
DateUtil.java 通用时间处理类
2010-10-25 08:21 1585package util; import java.text ... -
StringUtil.java常用字符操作类
2010-10-25 08:16 3030package util; import java.io.U ... -
大数据量分页下拉菜单设计
2010-10-25 01:03 1044下拉菜单的数据是1、2 ... -
将Object对象的属性(有对应get方法)按照属性名字(key)和对应值(value)放到Map中
2010-10-25 00:17 2013/** * 将Object对象的属性(有对应get ... -
导出Excel通用模块设计(修订版)
2010-10-25 00:12 1598/** * 导出Excel文件 * ... -
jre安装失败,手动注册jre
2010-09-19 21:35 5822Windows Registry Editor Version ...
相关推荐
Struts2和JasperReport的整合是Web应用程序中创建动态报表的一种常见方法。JasperReport是一个功能强大的开源报表引擎,允许开发人员通过iReports这样的设计工具以可视化的形式创建复杂的报表模板。Struts2,作为一...
在本文中,我们将深入探讨如何整合Struts2框架与JasperReport3来创建动态报表,并利用iReport工具进行报表设计。Struts2是一个流行的Java Web应用程序框架,它提供了MVC(模型-视图-控制器)架构,而JasperReport则...
Struts2和JasperReport是两个在Java Web开发中广泛使用的框架。Struts2作为MVC(模型-视图-控制器)架构的一部分,主要用于处理HTTP请求并管理应用程序流程,而JasperReport则是一个强大的报告生成工具,能够创建...
Struts2、iReport与JasperReport是Java开发中用于构建高效、动态Web应用程序和报表生成的工具。在这个项目中,这些技术结合在一起,提供了一种强大的报表导出解决方案。以下是对这些关键技术及其在项目中的应用的...
struts2 jasperreport
Struts2.1和JasperReport的整合是Java Web开发中的一个重要话题,它涉及到Web应用程序的MVC(模型-视图-控制器)架构和数据报告的生成。Struts2.1是一个强大的MVC框架,而JasperReport则是一个用于创建复杂报表的...
Struts2和JasperReport是Java开发中两个重要的框架,它们在企业级应用开发中扮演着关键角色。Struts2是一个强大的MVC框架,用于构建动态、数据驱动的Web应用程序,而JasperReport则是一个开源的报表工具,可以生成...
Struts2和JasperReport是两个在Java Web开发中广泛使用的框架。Struts2作为MVC(模型-视图-控制器)架构的一部分,主要用于处理HTTP请求和管理应用程序流程,而JasperReport则是一个强大的报告生成工具,能够创建...
标题“jasperReport+struts2+jatoolsPrinter打印”涉及的是一个集成开发场景,主要集中在Java企业级应用中的报表生成和打印功能。jasperReport是一个强大的开源报表工具,能够帮助开发者创建复杂的报告设计;Struts2...
将Struts2与JasperReport结合,可以实现Web应用中的动态报表生成和展示。 首先,我们需要理解Struts2的核心概念。Struts2框架基于拦截器模型,通过Action类处理用户请求,Action与视图(JSP)之间的交互由结果类型...
这个过程中,开发者需要理解Maven的依赖管理和生命周期,熟悉Struts2的配置和拦截器机制,掌握JasperReport的报表设计以及数据绑定,同时还需要有一定的前端知识来展示报表。通过整合这些工具,可以构建出一个强大的...
在Struts2中集成JasperReport,可以方便地在Web应用中添加报告功能。 在Struts2中集成JasperReport 3.7.1,你需要一些关键的库文件,这些文件已经在你提供的压缩包中。以下是每个文件及其在集成过程中的作用: 1. ...
在这个主题中,我们将深入探讨如何在Struts2中集成JasperReport来导出Excel。 首先,我们需要理解Struts2的工作原理。Struts2框架基于拦截器模型,通过Action类处理用户请求,并返回结果到视图层。为了实现导出...
Struts2、JasperReport 和 iReport 是开发Web报表应用中的常用技术栈。本文主要针对使用Struts2框架结合JasperReport5.0与iReport5.0进行报表开发时可能遇到的问题进行总结。 1. **报表预览问题**: - 数据源为空...
Struts2 和 JasperReport 的整合是为了解决在 Web 应用中生成复杂报表的需求。JasperReport 是一个强大的开源报表引擎,它允许开发者通过设计模板来生成各种类型的报表,如 PDF、HTML、Excel 等。而 Struts2 是一个...
将这两者整合,可以让Struts2应用程序轻松地实现动态报告的生成与展示。 在整合Struts2和JasperReport时,我们需要一些特定的jar包来确保两者能正确通信和协同工作。这些jar包通常包含了Struts2的核心组件、...
使用ireport和struts2进行报表设计的简单示例,生成普通报表和饼图、柱状图。java工程的lib里包含丰富的jar包,且很多都是从各个网站下载的最新版本,文件夹内还包含一些ireport和jasperreport文档,适合刚入门学习...
标题中的“jasperreport生成pdf实现下载与打印”是指使用JasperReports库来创建PDF报告,并提供下载和打印功能。JasperReports是一个开源的Java报表工具,它允许开发者设计、生成和导出各种类型的报表,包括PDF、...