今天, 就在这一时刻,9:59分,终于把html红**的问题给解决了。这个东东困扰了我好几天....
struts2在我这个项目中只起到了一个转向的作用,真正配置什么的,到是没有用到.....这是问题1,
问题2:就是生成html页面的时候,红**的问题,因为struts2默认的会有拦截,px,以至得不到图片,所以我把px文件名称改成了px.px ,在引用的时候写px.
这样在附上下面这句代码,就解决了图片**问题:
exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "/test/images/px.");
下面附上3种方式生成报表,都为struts2中execute方法代码,代码为部分核心:
------------------------------------------------------------------------------------------------------------pdf-----------------------------------------------------------------------------------------------------------------:
sSQL = String.format(sSQL, sWhere);
Connection con = null;
String strMessage="";
ResultSet rs=null;
//String path1=request.getContextPath();
//String path2="E:\\workspace\\IreportDemo\\WebRoot\\report\\SecondDemo.jasper";
String path= request.getRealPath("/reports/jb7.jasper");
System.out.println(path);
File reportFile = new File(path);
byte[] bytes=new byte[200];
try {
con = DBConnection.currentConnection();
Statement stat = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
// ResultSet rs=DBConnection.getConnection();
rs=stat.executeQuery(sSQL);
} catch (SQLException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
JRResultSetDataSource ds = new JRResultSetDataSource(rs);
System.out.println("-------------------------------------------------------------");
try {
System.out.println(ds.next());
} catch (JRException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
System.out.println("-------------------------------------------------------------");
try {
//生成pdf文件
bytes = JasperRunManager.runReportToPdf(reportFile.getPath(),null, ds);
} catch (JRException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//pdf设置
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream;
try {
ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.write(0);
ouputStream.flush();
ouputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
------------------------------------------------------------------------------------------------------------html-----------------------------------------------------------------------------------------------------------------:
sSQL = String.format(sSQL, sWhere);
Connection con = null;
String strMessage="";
ResultSet rs=null;
response.setCharacterEncoding("UTF-8");
File reportFile = new File(request.getRealPath("/reports/jb7.jasper"));
if (!reportFile.exists())
throw new JRRuntimeException("File WebappReport.jasper not found. The report design must be compiled first.");
JasperReport jasperReport = null;
try {
jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath());
} catch (JRException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Map parameters = new HashMap();
parameters.put("ReportTitle", "Address Report");
parameters.put("BaseDir", reportFile.getParentFile());
try
{
con = DBConnection.currentConnection();
Statement stat = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs=stat.executeQuery(sSQL);
System.out.println(rs.next());
JRResultSetDataSource jrds = new JRResultSetDataSource(rs);
System.out.println("--------------------------------------------------");
System.out.println(jrds.next());
JasperPrint jasperPrint =
JasperFillManager.fillReport(
jasperReport,
parameters,
jrds
);
response.setContentType("text/html");
JRHtmlExporter exporter = new JRHtmlExporter();
PrintWriter out=response.getWriter();
request.setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);
exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "/test/images/px.");
exporter.exportReport();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
------------------------------------------------------------------------------------------------------------excel-----------------------------------------------------------------------------------------------------------------:
sSQL = String.format(sSQL, sWhere);
path= request.getRealPath("/reports/jb7.jasper");
System.out.println(path);
reportFile = new File(path);
try {
con = DBConnection.currentConnection();
Statement stat = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs=stat.executeQuery(sSQL);
} catch (SQLException e1) {
}
JRDataSource dataSource=new JRResultSetDataSource(rs);
//生成EXCEL
try {
//这里注意参数传递,dataSource为数据源
jasperPrint = JasperFillManager.fillReport(reportFile.getPath(),null,dataSource);
JRXlsExporter exporter = new JRXlsExporter();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,Boolean.TRUE); // 删除记录最下面的空行
exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,Boolean.FALSE);// 删除多余的ColumnHeader
exporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,Boolean.FALSE);// 显示边框
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,baos);
exporter.exportReport();
//这里需要设置,数据没有填充进去,,待续........................
response.setContentType("application/vnd.ms-excel;charset=GB2312");
bytes = baos.toByteArray();
if (bytes != null && bytes.length > 0){
response.setCharacterEncoding("utf-8");
response.setContentLength(bytes.length);
ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
}
} catch (Exception e) {
}
return null;
分享到:
相关推荐
Struts2.1和JasperReport的整合是Java Web开发中的一个重要话题,它涉及到Web应用程序的MVC(模型-视图-控制器)架构和数据报告的生成。Struts2.1是一个强大的MVC框架,而JasperReport则是一个用于创建复杂报表的...
Struts2、iReport与JasperReport是Java开发中用于构建高效、动态Web应用程序和报表生成的工具。在这个项目中,这些技术结合在一起,提供了一种强大的报表导出解决方案。以下是对这些关键技术及其在项目中的应用的...
Struts2 是一个MVC(Model-View-Controller)框架,用于构建可维护性和可扩展性高的Web应用程序,而JasperReport则是一款功能丰富的报表工具,能够生成各种格式的报表,如PDF、Excel和HTML。 首先,我们来详细了解...
Struts2和JasperReport是Java开发中两个重要的框架,它们在企业级应用开发中扮演着关键角色。Struts2是一个强大的MVC框架,用于构建动态、数据驱动的Web应用程序,而JasperReport则是一个开源的报表工具,可以生成...
Struts2 + JasperReports4 + DB2 Demo是一个集成示例,展示了如何在Java Web应用程序中使用Struts2框架,JasperReports库以及DB2数据库来创建动态报告。这个项目可以帮助开发者学习如何有效地将这些技术结合在一起,...
以下为`JRPrinterApplet`类的部分关键代码示例: ```java public class JRPrinterApplet extends javax.swing.JApplet { private URL url = null; private JasperPrint jasperPrint = null; private String ...
通过学习这个示例项目,你可以掌握如何在Struts2应用程序中集成JasperReport,从而构建出强大的报表系统。这将极大地提升你的Java Web开发能力,特别是在企业级应用中,报表功能通常是必不可少的一部分。
【JasperReport+SSH】是一种常见的企业级应用开发框架组合,用于构建强大的数据报告和Web应用程序。这个组合包括了以下几个核心组件: 1. **JasperReport**:JasperReport是一款开源的报表工具,用于设计、生成和...
Struts2是一个强大的MVC(模型-视图-控制器)框架,它在Java Web开发中广泛应用,用于构建高效、可维护的Web应用程序。这个“struts2JsperReport.rar”压缩包显然包含了一个使用Struts2框架实现的报表示例项目。在这...
**JasperReport学习资料概述** JasperReport是一款强大的开源报表工具,主要用来设计和生成静态或动态的报表。...提供的“报表实例”文件可能包含了一些实际的报表模板和示例代码,用于帮助理解JasperReport的用法。
STRUTS是一种MVC(模型-视图-控制器)框架,它为Java Web应用程序提供了结构化的开发框架,帮助开发者组织和管理业务逻辑,使得代码更易维护和测试。 JDBC(Java Database Connectivity)是Java语言访问数据库的...
首先,JasperReports是一个开源的报表库,它允许开发人员在Java应用程序中生成静态和交互式的报表。它可以处理各种数据源,如数据库查询结果、XML文件或者自定义的数据提供者。JasperReports支持多种输出格式,包括...
JasperReports是一款开源的Java报表库,它允许开发人员在各种应用程序中生成复杂的报表。它的核心功能包括设计报表模板、数据处理、报表渲染等,支持多种输出格式,如PDF、HTML、Excel、CSV等。在本DEMO中,我们将...
Struts2提供了一种结构化的方式来组织Web应用,降低了复杂性并提高了代码的复用性。框架的核心组件包括Action、Interceptor、Result等,Action处理HTTP请求,Interceptor处理拦截逻辑,Result定义视图的展示方式。...
3. **框架应用**:掌握Struts、Hibernate、Spring等主流Java开发框架,这些框架简化了开发过程,提高了代码的可维护性和可扩展性。 4. **数据库技术**:熟悉Oracle、SQL Server等数据库系统,能编写SQL查询和存储...
2. **报表设计** JasperReport的设计界面允许用户通过拖拽组件来创建复杂的报表布局。它支持iReport(现已并入Jaspersoft Studio)作为可视化设计工具,提供WYSIWYG(所见即所得)编辑模式。报表设计文件通常以`....
- **JasperReport**:一种强大的报表生成工具,可以将数据转换为美观的报表。 - **JFreeChart**:一个免费的Java图表库,可以用来生成各种类型的图表。 4. **数据库技术**: - **Oracle**:一种大型的关系型...