在spring 2.0以上版本,提供了对jasper report的集成功能
可以参考 manning 的spring in action II,其中有一章专门讲解这个
另外,google查一下 spring 集成 jasper,也有不少的资料
概要如下
web.xml
<servlet>
<servlet-name>jasperSpring</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jasperSpring</servlet-name>
<url-pattern>/jasperSpring/*</url-pattern>
</servlet-mapping>
建立jasperSpring-servlet.xml文件放到和web.xml一级
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"
value="net.sourceforge.jtds.jdbc.Driver">
</property>
<property name="url"
value="jdbc:jtds:sqlserver://10.200.250.110/Pinggu">
</property>
<property name="username" value="sa"></property>
<property name="password" value=""></property>
</bean>
<bean id="publicUrlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="report">jasperController</prop>
</props>
</property>
</bean>
<bean id="jasperController"
class="com.report.jinpin.jasper.JasperSpringController">
<property name="dataSource">
<ref local="dataSource" />
</property>
</bean>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
<property name="basename" value="views" />
</bean>
</beans>
后台写一个servlet,包名自己取,和上面的文件配置中的保持一致
com.report.jinpin.jasper.JasperSpringController
package com.report.jinpin.jasper;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class JasperSpringController implements Controller
{
private DataSource dataSource;
private String userid;
private String schoolid;
private String classid;
private String classtype;
private String classcontent;
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException, ClassNotFoundException, SQLException
{
schoolid="";
classid="";
classtype="";
classcontent="";
schoolid=request.getParameter("schoolid");
//ISO-8859-1
schoolid=new String(schoolid.getBytes("ISO-8859-1"),"utf-8");
classid=request.getParameter("classid");
classid=new String(classid.getBytes("ISO-8859-1"),"utf-8");
classtype=request.getParameter("classtype");
classtype=new String(classtype.getBytes("ISO-8859-1"),"utf-8");
classcontent=request.getParameter("classcontent");
classcontent=new String(classcontent.getBytes("ISO-8859-1"),"utf-8");
String viewname="";
if(classcontent.equals("璇剧▼淇℃伅"))
{
if(classtype.equals("楂樿亴楂樹笓"))
viewname="JingPinClass_GZ";
else
viewname="JingPinClass_B";
}
if(classcontent.equals("鎺堣鏁欏笀"))
{
if(classtype.equals("楂樿亴楂樹笓"))
viewname="MainTeacher_GZ";
else
viewname="MainTeacher_B";
}
if(classcontent.equals("鏁欏笀闃熶紞"))
{
if(classtype.equals("楂樿亴楂樹笓"))
viewname="SubTeacher_GZ";
else
viewname="SubTeacher_B";
}
if(classcontent.equals("璇剧▼鍐呭"))
{
if(classtype.equals("鏈锛堢悊璁鸿绋嬶級"))
viewname="theorycontent";
else
viewname="practice_B_Content";
}
return new ModelAndView(viewname, getModel());
}
private Map getModel() throws ClassNotFoundException, SQLException
{
Connection connection;
Statement statement;
ResultSet resultSet;
HashMap model = new HashMap();
String query ="";
// "select * from JingPinClass_B where schoolId='鍖椾含澶у ' and classid='鍙h厰棰岄潰鍖诲褰卞儚璇婃柇瀛�";
if(classcontent.equals("璇剧▼淇℃伅"))
{
if(classtype.equals("楂樿亴楂樹笓"))
query="select * from JingPinClass_GZ where schoolId='"+schoolid+"' and classid='"+classid+"'";
else
query="select * from JingPinClass_B where schoolId='"+schoolid+"' and classid='"+classid+"'";
}
if(classcontent.equals("鎺堣鏁欏笀"))
{
if(classtype.equals("楂樿亴楂樹笓"))
query="select * from MainTeacher_GZ where schoolId='"+schoolid+"' and classid='"+classid+"'";
else
query="select * from MainTeacher_B where schoolId='"+schoolid+"' and classid='"+classid+"'";
}
if(classcontent.equals("鏁欏笀闃熶紞"))
{
if(classtype.equals("楂樿亴楂樹笓"))
query="select * from SubTeacher_GZ where schoolId='"+schoolid+"' and classid='"+classid+"'";
else
query="select * from SubTeacher_B where schoolId='"+schoolid+"' and classid='"+classid+"'";
}
if(classcontent.equals("璇剧▼鍐呭") )
{
if(classtype.equals("鏈锛堢悊璁鸿绋嬶級"))
query="select * from ThoeryContent where schoolId='"+schoolid+"' and classid='"+classid+"'";
else
query="select * from practice_B_Content where schoolId='"+schoolid+"' and classid='"+classid+"'";
}
connection = dataSource.getConnection();
statement = connection.createStatement();
resultSet = statement.executeQuery(query);
JRResultSetDataSource resultSetDataSource = new JRResultSetDataSource(resultSet);
model.put("datasource", resultSetDataSource);
return model;
}
public void setDataSource (DataSource dataSource)
{
this.dataSource=dataSource;
}
}
有些乱码,反正意图是说清楚了
分享到:
- 2008-09-02 16:11
- 浏览 2307
- 评论(3)
- 论坛回复 / 浏览 (3 / 5310)
- 查看更多
相关推荐
### jasperReport与Spring框架集成应用详解 #### 一、jasperReport简介及Spring环境配置 **jasperReport**是一款非常强大的报表工具,它能够基于Java环境生成多种格式的报表,如PDF、HTML、XLS(Excel)、CSV以及...
本文旨在详细介绍如何将Spring MVC框架与JasperReport报表工具进行有效集成的过程,并解决在此过程中可能遇到的问题。JasperReport是一款非常强大的报表生成工具,它支持多种数据源,如JDBC、XML等,并且可以输出PDF...
在Spring MVC框架中集成JasperReport,主要是为了利用JasperReport强大的报表生成能力,将数据库中的数据以美观、直观的方式展现出来。以下是对这个过程的详细步骤和知识点的阐述: 1. **配置Servlet映射**: 在`...
SpringBoot是一款轻量级的Java应用框架,它简化了在Spring框架上构建应用程序的过程。而JasperReport是一款强大的开源报表工具,能够帮助开发者创建、设计和展示复杂的业务报告。将两者整合,可以让SpringBoot应用...
### JasperReport与Spring集成 #### 一、JasperReport简介 JasperReport是一款开源的报表设计工具,它能够根据输入的数据源(如数据库查询结果、XML文档等)生成丰富的PDF、HTML、XLS等多种格式的报表。由于其高度...
springmvc框架整合jasperreport和ireport简单易用,框架清晰,maven仓库
在Spring MVC Web应用程序中集成Jasper报表工具是一个常见的需求,以提供动态生成和展示各种复杂数据的报表。JasperReports是一款强大的开源报表库,能够帮助开发者创建、设计和展示多种格式的报表,如PDF、HTML、...
本项目"spring项目jasperReportDemo演示"结合了Spring和JasperReport,提供了一个直观的示例,帮助开发者理解如何在Spring应用中集成并使用JasperReport来生成报表。 首先,我们来看`jasperDemo`这个压缩包中的项目...
在Web应用程序中集成JasperReport通常需要将相关库文件(如JasperReport库、iText库等)添加到项目的`WEB-INF/lib`目录下。例如,对于JasperReport 1.3.3版本,可能需要以下库文件: - commons-beanutils-1.7.jar -...
在这个项目中,我们将Struts2和JasperReport结合,利用Spring2.5和iBatis来构建数据访问层和业务逻辑层。 首先,我们来看Struts2的集成。Struts2提供了一种灵活的拦截器机制,可以方便地与其他框架集成。在与...
JasperReport可以轻松地与Spring、Struts、Hibernate等Java框架集成,实现报表功能的无缝整合。此外,JasperServer提供了报表服务器功能,支持在线报表设计、权限管理、定时任务等功能,使得报表的管理和分享更为...
其强大的报表引擎使得开发者能够灵活地设计和控制报表布局,同时提供了与 Java 应用程序、Web 应用程序和企业级框架(如 Spring)的无缝集成。 2. **项目结构** 在 `JasperReport_Prj` 这个压缩包中,通常包含以下...
Spring MVC与Spring框架其他组件无缝集成,如Spring JDBC、Spring ORM,可以方便地进行事务管理、数据访问以及AOP(面向切面编程)。 **JasperReport** JasperReport是用Java编写的一个开源报表库,能够生成PDF、...
4. **集成应用**: 将JasperReport集成到Spring Boot、Struts2等Web框架中,提供报表服务。 ### 5. 进阶特性 - **样式和样式表**: 可以使用CSS样式表自定义报表外观。 - **条件样式**: 根据数据值动态改变单元格的...
它提供了丰富的图形元素、数据绑定和模板设计功能,可以与各种数据库、Java 应用程序和框架(如 Spring)无缝集成。iReport 是 JasperReport 的设计工具,用于可视化地创建报表模板。 ### 2. JasperReport 设计基础...
6. **Spring框架集成**:spring-context-4.x.x.jar、spring-webmvc-4.x.x.jar等Spring框架的依赖库,使得JasperReport能够与SpringMVC无缝集成,方便地在Controller中处理报表请求,以及在Service层进行报表的生成和...
Spring的核心特性包括依赖注入(DI)、面向切面编程(AOP)以及一系列的模块,如Spring MVC、Spring JDBC和Spring ORM,其中Spring ORM支持Hibernate的集成。 4. **Hibernate**:Hibernate是一个对象关系映射(ORM...
6. 集成到应用程序:了解如何将JasperReport集成到Spring、Struts等主流Java框架中,以提供报表服务。 7. 报表服务器:JasperServer是JasperReport的商业版本,提供了一套完整的报表服务器解决方案,包括权限管理、...