jasperreports+IReport 5.56,集成到Spring MVC4.0案例
首先,先说一下需求,项目需要打印一些报表,也没多想,直接就在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案例的更多相关文章
- Spring Boot2.0使用Spring Security
一.Spring Secutity简介 Spring 是一个非常流行和成功的 Java 应用开发框架.Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性 ...
- Spring.Net在Mvc4.0中应用的说明
案例Demo:http://yunpan.cn/cJ5aZrm7Uybi3 访问密码 414b Spring.Net在Mvc4.0中应用的说明 1.引用dll 2.修改Global文件 (Spring ...
- Spring Mvc4 新特性(一)
前言 Spring Framework的Web层,由spring-web,spring-webmvc,spring-websocket和spring-webmvc-portlet模块组成. 很多人刚学 ...
- Spring.Net2.0+NHibernate4.0 +Asp.Net Mvc4 一
1.创建项目结构 控制器: SN.Controllers 数据访问 :SN.Dao 实体映射: SN.Models 服务层: SN.Servers 视图层: SN.Web 2.添加需 ...
- Redis篇之操作、lettuce客户端、Spring集成以及Spring Boot配置
Redis篇之操作.lettuce客户端.Spring集成以及Spring Boot配置 目录 一.Redis简介 1.1 数据结构的操作 1.2 重要概念分析 二.Redis客户端 2.1 简介 2 ...
- Struts2、Spring MVC4 框架下的ajax统一异常处理
本文算是struts2 异常处理3板斧.spring mvc4:异常处理 后续篇章,普通页面出错后可以跳到统一的错误处理页面,但是ajax就不行了,ajax的本意就是不让当前页面发生跳转,仅局部刷新, ...
- spring mvc4:异常处理
前面学习过struts2的异常处理,今天来看下spring mvc4的异常处理: 一.Servlet配置文件修改 <bean id="exceptionResolver" c ...
- 一键式Spring集成工具 Spring Boot
最近公司使用Spring boot进行开发,稍微了解一下,不过自我感觉把集中式配置applicate.properties搞明白,注解用过Spring MVC的boot绝对没问题的 比如拦截器:@As ...
- Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问
本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Jar包 这 ...
随机推荐
- springboot 使用Filter
1. 创建 Filter 类,实现 Filter 接口 import javax.servlet.*; import javax.servlet.annotation.WebFilter; impor ...
- 从零开始学习Java多线程(三)
本文主要对Java多线程同步与通信以及相关锁的介绍. 1 .Java多线程安全问题 Java多线程安全问题是实现并发最大的问题,可以说多线程开发其实就是围绕多线程安全问题开发,涉及之深,不是简简单单一 ...
- PAT 1144 The Missing Number
1144 The Missing Number (20 分) Given N integers, you are supposed to find the smallest positive in ...
- css给html添加效果
<!doctype html> <html> <head> <title>EasyMall注册界面</title> <meta htt ...
- git(二) 分支管理
概念 分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN. 如果两个平行宇宙互不干扰,那对现在的你也没啥影响.不过,在某个时间点,两个平行宇 ...
- dockerfile语法规则
编写Dockerfile 在前面的章节,我们学习了通过docker命令来下载镜像,运行镜像,在容器中部署自己的程序,最后将容器提交到自己的镜像中.但是,这并不是Docker推荐的镜像构建方式.在这一章 ...
- sface
单步检测方法分为两类:anchor-based如ssd.RetinaNet;2)Anchor-free 如DenseBox.UnitBox;anchor-based处理的尺度范围虽小,更精准:anch ...
- vue兄弟组件传递信息
bus方式的组件间传值其实就是建立一个公共的js文件,专门用来传递消息 新建一个Bus.js两个组件都需要引用 组件A 通过$emit传递信息 组件B $on接收
- elixir东游记:实现一个简单的中文语句解析
备份:https://zhuanlan.zhihu.com/p/46030123 代码地址:github:pyzh/gdpl-ex.poc-1 原语句是:List1为'12332234':记a为Lis ...
- 网络编程-day3
---恢复内容开始--- 一.缓冲区: 将程序和网络解耦 输入缓冲区 输出缓冲区 每个 socket 被创建后,都会分配两个缓冲区,输入缓冲区和输出缓冲区. write()/send() 并不立即向 ...