博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java运用echart进行图形展示
阅读量:5345 次
发布时间:2019-06-15

本文共 9637 字,大约阅读时间需要 32 分钟。

  前段时间项目中要做一个根据数据生成折线图的功能,并5分钟刷新一次,进行数据更新。由于之前是用echarts来进行中国地图展现的,所有这次也用echarts进行图形展示。

项目目录如下图所示:

1.pom.xml文件

该文件主要是对jar包进行管理,可以不看

1 
2
4.0.0
3
test
4
test
5
0.0.1-SNAPSHOT
6
war
7 8
9
4.1.3.RELEASE
10
2.4.2
11
1.2
12
2.5
13
2.0
14
15 16
17
18
19
jstl
20
jstl
21
${jstl.version}
22
23
24
javax.servlet
25
servlet-api
26
provided
27
${servlet-api.version}
28
29
30
javax.servlet
31
jsp-api
32
provided
33
${jsp-api.version}
34
35
36
37
com.fasterxml.jackson.core
38
jackson-databind
39
${jackson.version}
40
41
42
43
org.springframework
44
spring-context
45
${spring.version}
46
47
48
org.springframework
49
spring-beans
50
${spring.version}
51
52
53
org.springframework
54
spring-webmvc
55
${spring.version}
56
57
58
org.springframework
59
spring-jdbc
60
${spring.version}
61
62
63
org.springframework
64
spring-aspects
65
${spring.version}
66
67
68 69
70
71
72
org.apache.tomcat.maven
73
tomcat7-maven-plugin
74
75
8080
76
/
77
78
79
80
81
View Code

2.web.xml文件

该文件可以不看

1 
2
6
7
index.html
8
index.htm
9
index.jsp
10
default.html
11
default.htm
12
default.jsp
13
14 15
16
17
contextConfigLocation
18
classpath:spring/applicationContext*.xml
19
20
21
org.springframework.web.context.ContextLoaderListener
22
23 24
25
26
CharacterEncodingFilter
27
org.springframework.web.filter.CharacterEncodingFilter
28
29
encoding
30
utf-8
31
32
33
forceEncoding
34
true
35
36
37
38
CharacterEncodingFilter
39
/*
40
41 42
43
44
springmvc
45
org.springframework.web.servlet.DispatcherServlet
46
47
48
contextConfigLocation
49
classpath:spring/springmvc.xml
50
51
1
52
53
54
springmvc
55
/
56
57 58
View Code

3.applicationContext-service.xml文件

该文件为spring的配置文件,可以不看

1 
9 10
11
View Code

4.springmvc.xml文件

该文件为springmvc的配置文件,可以不看

1 
2
9 10
11
12
14
16
17
18 19 20
21
22 23 24
View Code

5.EchartsEntity.java

series中有3个比较重要的数据:name、type、data。创建EchartsEntity类对这三个属性进行了封装。

1 package po; 2  3 import java.util.List; 4  5 public class EchartsEntity { 6  7     public String name; 8     public String type; 9     public List
data;10 11 public EchartsEntity() {12 13 }14 15 public EchartsEntity(String name, String type, List
data) {16 super();17 this.name = name;18 this.type = type;19 this.data = data;20 }21 22 public String getName() {23 return name;24 }25 26 public void setName(String name) {27 this.name = name;28 }29 30 public String getType() {31 return type;32 }33 34 public void setType(String type) {35 this.type = type;36 }37 38 public List
getData() {39 return data;40 }41 42 public void setData(List
data) {43 this.data = data;44 }45 46 47 }
View Code

6.EchartsServiceImpl.java

该文件主要是读取后台数据将其存放到EchartsEntity集合中,简单起见,数据我只是从网上code了3条记录。现实开放中,你可以从数据库表中读取数据,然后按需求将这些数据存放到EchartsEntity集合中。

1 package service.impl; 2  3 import java.util.ArrayList; 4 import java.util.Arrays; 5 import java.util.HashMap; 6 import java.util.List; 7 import java.util.Map; 8  9 import org.springframework.stereotype.Service;10 11 import com.fasterxml.jackson.core.JsonProcessingException;12 import com.fasterxml.jackson.databind.ObjectMapper;13 14 import po.EchartsEntity;15 import service.EchartsService;16 17 @Service18 public class EchartsServiceImpl implements EchartsService {19 20     private ObjectMapper mapper = new ObjectMapper();21     public String getLineImage() {22         List
echarts = new ArrayList
();23 //自定义横坐标24 String[] xAxis = {"周一","周二","周三","周四","周五","周六","周日"};25 //自定义三条线26 EchartsEntity entity1 = new EchartsEntity("邮件营销","line",Arrays.asList(120, 132, 101, 134, 90, 230, 210));27 EchartsEntity entity2 = new EchartsEntity("联盟广告","line",Arrays.asList(220, 182, 191, 234, 290, 330, 310));28 EchartsEntity entity3 = new EchartsEntity("视频广告","line",Arrays.asList(150, 232, 201, 154, 190, 330, 410));29 echarts.add(entity1);30 echarts.add(entity2);31 echarts.add(entity3);32 33 String[] legend = {"邮件营销","联盟广告","视频广告"};34 Map
resultMap = new HashMap
();35 resultMap.put("xAxis", xAxis);36 resultMap.put("series", echarts);37 resultMap.put("legend", legend);38 try {39 return mapper.writeValueAsString(resultMap);40 } catch (JsonProcessingException e) {41 // TODO Auto-generated catch block42 e.printStackTrace();43 }44 return "";45 }46 47 }
View Code

7.EchartsTestController.java

Echarts图行展现控制器,通过该控制器返回处理后的图形数据给前端

1 package controller; 2  3 import org.springframework.beans.factory.annotation.Autowired; 4 import org.springframework.http.MediaType; 5 import org.springframework.web.bind.annotation.RequestMapping; 6 import org.springframework.web.bind.annotation.RestController; 7  8 import service.EchartsService; 9 10 @RestController11 @RequestMapping(value="/echarts",produces=MediaType.TEXT_HTML_VALUE+";charset=utf-8")12 public class EchartsTestController {13 14     @Autowired15     public EchartsService echartsService;16     17     @RequestMapping("/showImage")18     public String showImage() {19         String value = echartsService.getLineImage();20         System.out.println(value);21         return value;22     }23 }
View Code

8.ShowPageController.java

页面展现的控制器,通过该控制器进行页面展现

1 package controller; 2  3 import org.springframework.stereotype.Controller; 4 import org.springframework.web.bind.annotation.PathVariable; 5 import org.springframework.web.bind.annotation.RequestMapping; 6  7 @Controller 8 public class ShowPageController { 9 10     @RequestMapping("/{page}")11     public String showPage(@PathVariable String page) {12     13         return page;14     }15 }
View Code

9.前台jsp页面

1 <%@ page language="java" contentType="text/html; charset=UTF-8"  2     pageEncoding="UTF-8"%>  3   4   5   6 
7 8 9
12 Insert title here 13 14 15
16 100 101 102
View Code

运行项目,结果如图所示:

转载于:https://www.cnblogs.com/sjcq/p/5433097.html

你可能感兴趣的文章
IE6/7/8/9的CSS HACK
查看>>
『Linux基础 - 2 』操作系统,Linux背景知识和Ubuntu操作系统安装
查看>>
Cucumber + Capybara - What we need for rails integration test
查看>>
一张图UML
查看>>
[转]ArcGIS计算图斑的四邻坐标(XMin,XMax,YMin,YMax)
查看>>
英语口语练习系列-C41-食物词汇-鹊桥仙
查看>>
package-info.java到底是什么
查看>>
iOS- 优化与封装 APP音效的播放
查看>>
C#操作移动其他程序窗口
查看>>
剑指offre之【二叉树的下一个节点】
查看>>
[典型漏洞分享]业务逻辑导致的隐私泄露2
查看>>
OpenJSIP单机上简单部署
查看>>
网络流学习笔记
查看>>
kaptcha谷歌验证码工具
查看>>
ubuntu和win10双系统,用ubuntu引导win10启动
查看>>
struts2值栈命名的一个bug
查看>>
前端学习(三十七)面向对象(笔记)
查看>>
react
查看>>
4.windows如何导入python包
查看>>
Delphi TTabControl控件使用
查看>>