首先,先说一下需求,项目需要打印一些报表,也没多想,直接就在jsp页面设置了样式,前台直接调用window.print()写了打印功能,但是例会的时候,领导提出需要一些比较麻烦的打印,自己写肯定费时间,就想着去找找web打印控件,一搜都是一些收费的,免费版基本都有水印,客户肯定接受不了水印的。买的话,项目本身就没多少钱,不划算。就找到了jasperreports+Ireport好像还可以。就找了找资料,准备着手集成到框架里面了。

下面是参考案例:

https://blog.csdn.net/xht555/article/details/43409637

主要是按照这个集成的,但是他的jar包跟我的jar包不太一样,导致我一直报错,后来又参考了下面这个

https://blog.csdn.net/yan_tu/article/details/71534176

和http://maven.outofmemory.cn/net.sf.jasperreports/jasperreports/5.6.0/

1、导入jar包:

<!-- iReport JasperReports -->
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>5.6.0</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>2.1.7</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.0.0.RELEASE</version>
</dependency>
<!-- end -->

看了上面两个案例后,可能会觉得我怎么导入那么多的包?其中springMVC4.0最低支持的

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.1.4</version>
</dependency>

2.6版本以上的,但是jasper最高只支持2.1.4版本没办法,只能用了2.1.4,又加了一个

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.0.0.RELEASE</version>
</dependency>

这样就jar包基本没什么问题了。

2、SpringMVC配置

配置请参考: https://blog.csdn.net/xht555/article/details/43409637 案例。

我主要是修改了在我项目中的配置路径。这部分就不赘述了。

3、关于Ireport制作报表的问题 

遇到的第一个问题就是没有Oracle驱动,这个很简单,把Oracle对应的驱动包放入D:..\IReport\iReport-5.6.0\ireport\libs目录下,然后Ireport工具》选项》classpath添加jar就可以了。

配置好数据源后,然后就是我遇到的oracle数据库查出的字段默认都是大写的,但是我后台的javaBean都是小写的,导致一直报JavaBean里面找不到参数。

作为一个Java开发者,这个问题,我真的不该没意识到的,后来我在Ireport里面把字段改成了小写的(改JavaBean需要动的地方太多),这就没问题了。

这算不得一个教程吧,我也是个新手,算是记录一下自己整合的过程和参考,避免其他新人犯我一样的错误。谨记!

 

jasperreports+IReport 5.56,集成到Spring MVC4.0案例的更多相关文章

  1. Spring Boot2.0使用Spring Security

     一.Spring Secutity简介     Spring 是一个非常流行和成功的 Java 应用开发框架.Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性 ...

  2. Spring.Net在Mvc4.0中应用的说明

    案例Demo:http://yunpan.cn/cJ5aZrm7Uybi3 访问密码 414b Spring.Net在Mvc4.0中应用的说明 1.引用dll 2.修改Global文件 (Spring ...

  3. Spring Mvc4 新特性(一)

    前言 Spring Framework的Web层,由spring-web,spring-webmvc,spring-websocket和spring-webmvc-portlet模块组成. 很多人刚学 ...

  4. Spring.Net2.0+NHibernate4.0 +Asp.Net Mvc4 一

    1.创建项目结构 控制器:    SN.Controllers 数据访问 :SN.Dao 实体映射: SN.Models 服务层:     SN.Servers 视图层:   SN.Web 2.添加需 ...

  5. Redis篇之操作、lettuce客户端、Spring集成以及Spring Boot配置

    Redis篇之操作.lettuce客户端.Spring集成以及Spring Boot配置 目录 一.Redis简介 1.1 数据结构的操作 1.2 重要概念分析 二.Redis客户端 2.1 简介 2 ...

  6. Struts2、Spring MVC4 框架下的ajax统一异常处理

    本文算是struts2 异常处理3板斧.spring mvc4:异常处理 后续篇章,普通页面出错后可以跳到统一的错误处理页面,但是ajax就不行了,ajax的本意就是不让当前页面发生跳转,仅局部刷新, ...

  7. spring mvc4:异常处理

    前面学习过struts2的异常处理,今天来看下spring mvc4的异常处理: 一.Servlet配置文件修改 <bean id="exceptionResolver" c ...

  8. 一键式Spring集成工具 Spring Boot

    最近公司使用Spring boot进行开发,稍微了解一下,不过自我感觉把集中式配置applicate.properties搞明白,注解用过Spring MVC的boot绝对没问题的 比如拦截器:@As ...

  9. Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问

    本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Jar包 这 ...

随机推荐

  1. springboot 使用Filter

    1. 创建 Filter 类,实现 Filter 接口 import javax.servlet.*; import javax.servlet.annotation.WebFilter; impor ...

  2. 从零开始学习Java多线程(三)

    本文主要对Java多线程同步与通信以及相关锁的介绍. 1 .Java多线程安全问题 Java多线程安全问题是实现并发最大的问题,可以说多线程开发其实就是围绕多线程安全问题开发,涉及之深,不是简简单单一 ...

  3. PAT 1144 The Missing Number

    1144 The Missing Number (20 分)   Given N integers, you are supposed to find the smallest positive in ...

  4. css给html添加效果

    <!doctype html> <html> <head> <title>EasyMall注册界面</title> <meta htt ...

  5. git(二) 分支管理

    概念 分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN. 如果两个平行宇宙互不干扰,那对现在的你也没啥影响.不过,在某个时间点,两个平行宇 ...

  6. dockerfile语法规则

    编写Dockerfile 在前面的章节,我们学习了通过docker命令来下载镜像,运行镜像,在容器中部署自己的程序,最后将容器提交到自己的镜像中.但是,这并不是Docker推荐的镜像构建方式.在这一章 ...

  7. sface

    单步检测方法分为两类:anchor-based如ssd.RetinaNet;2)Anchor-free 如DenseBox.UnitBox;anchor-based处理的尺度范围虽小,更精准:anch ...

  8. vue兄弟组件传递信息

    bus方式的组件间传值其实就是建立一个公共的js文件,专门用来传递消息 新建一个Bus.js两个组件都需要引用 组件A 通过$emit传递信息 组件B $on接收

  9. elixir东游记:实现一个简单的中文语句解析

    备份:https://zhuanlan.zhihu.com/p/46030123 代码地址:github:pyzh/gdpl-ex.poc-1 原语句是:List1为'12332234':记a为Lis ...

  10. 网络编程-day3

    ---恢复内容开始--- 一.缓冲区:  将程序和网络解耦 输入缓冲区 输出缓冲区 每个 socket 被创建后,都会分配两个缓冲区,输入缓冲区和输出缓冲区. write()/send() 并不立即向 ...