我使用的是Springboot 2.1.0,FineReport v10.0,Eclipse开发环境,代码运行后能直接访问报表也可以将报表嵌入中,进行页面跳转,并增加按照其他文章配置不能成功的问题点说明和注意事项。
第一步:新建一个spring boot项目,此处不赘述。
第二步:下载FineReport
第三步:修改springboot项目配置
- 修改pom.xml打包方式为war包,修改完之后更新项目
<packaging>war</packaging>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
更新完项目结构会发生变化,如下,src/main下会增加一个webapp文件夹,如果没有,请自行创建
springboot启动类要集成SpringBootServletInitializer,重写configure方法
@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(DemoApplication.class);
}
}
- 复制报表安装目录下的webapps/webroot下的WEB-INF文件夹到上述项目的webapp文件夹下,此处可以不用全部复制,但是我为了让整个过程简单易于理解先这样干了,等项目运行成功后读者慢慢熟悉了项目,可以根据官网的说明只复制必须的文件。
将%JAVA_HOME%/jdk/lib下的tools.jar拷贝到你的项目的webapp的WEB-INF的lib文件夹下.
第四步:在Eclipse配置tomcat
1.下载tomcat
2.点击server添加tomcat
右击tomcat v9.0
双击tomcat V9.0 server打开配置页面,默认的端口是8080,时间设置为60秒,保存
然后右击,Star项目
第五步:在浏览器打开指定的cpt文件
WEB-INF/reportlets下有帆软自带的模板cpt文件
查看自己的项目名称
修改下面的链接访问你自己的项目,建议一开始先新建项目按照我的例子成功运行后,自己分析然后再迁移至正式项目
第六步:将cpt文件嵌入html中,方便灵活开发
在src/main/resources/templates文件夹下新建index.html内容如下
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<h1>Welcome index !</h1>
<iframe id="reportFrame" width="1800" height="800"
src="/demo/decision/view/report?viewlet=GettingStarted.cpt"></iframe>
</body>
</html>
注意上述路径
修改application.properties的内容,一般新建的项目内容是空的
注意细节是一致的
spring.freemarker.template-loader-path=classpath:/templates/
spring.freemarker.cache=false
spring.freemarker.charset=UTF-8
spring.freemarker.check-template-location=true
spring.freemarker.content-type=text/html
spring.freemarker.expose-request-attributes=true
spring.freemarker.expose-session-attributes=true
spring.freemarker.request-context-attribute=request
spring.freemarker.suffix=.html
在DemoApplication.java同一文件夹下创建controller包,包下新建TestController类
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class TestController {
@RequestMapping("index")
public String index() {
return "index";
}
}
访问指定路径即可打开报表,但是这个报表查询时会报错,是因为报表数据集设置的问题,具体操作就是另一个知识点了,请查看官方开发文档说明。
如有问题请联系QQ736812983