前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ECharts与java后台交互绘制图表

ECharts与java后台交互绘制图表

作者头像
别团等shy哥发育
发布2023-02-25 17:26:29
发布2023-02-25 17:26:29
81600
代码可运行
举报
运行总次数:0
代码可运行

ECharts与java后台交互绘制图表

效果如下:

1、test.html

代码语言:javascript
代码运行次数:0
运行
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--引入Echarts文件-->
    <script src="js/echarts.min.js"></script>
    <script src="js/jquery-3.4.1.min.js"></script>
</head>
<body>
<div id="main" style="width: 600px;height: 400px;"></div>


<script type="text/javascript">
    var myChart=echarts.init(document.getElementById('main'));
    //显示标题,图例和空的坐标轴
    myChart.setOption({
        title : {
            text : 'ECharts'
        },
        tooltip : {
            show : true
        },
        legend : {
            data : [ '销量' ]
        },
        xAxis : {
            data : []
        },
        yAxis : {},
        series : [ {
            name : '销量',
            type : 'line',//图表类型,必要参数!如为空或不支持类型,则该系列数据不被显示,具体类型可进入ECharts官方查找API
            data : []
        } ]
    });
    myChart.showLoading(); //数据加载完之前先显示一段简单的loading动画

    var names = []; //类别数组(实际用来盛放X轴坐标值)
    var nums = []; //销量数组(实际用来盛放Y坐标值)
    $.ajax({
        type : "post",
        async : true, //异步请求(同步请求将会锁住浏览器,用户其他操作必须等待请求完成才可以执行)
        url : "test", //请求发送到Controller处,路径我上面写好了的,直接拼的,你自己按照你的写
        data : {},
        dataType : "json", //返回数据形式为json
        success : function(result) {
            //请求成功时执行该函数内容,result即为服务器返回的json对象
            if (result) {
                for (var i = 0; i < result.length; i++) {
                    names.push(result[i].name); //挨个取出类别并填入类别数组
                }
                for (var i = 0; i < result.length; i++) {
                    nums.push(result[i].num); //挨个取出销量并填入销量数组
                }
                myChart.hideLoading(); //隐藏加载动画
                myChart.setOption({ //加载数据图表
                    xAxis : {
                        data : names
                    },
                    series : [ {
                        // 根据名字对应到相应的系列
                        name : '销量',
                        data : nums
                    } ]
                });

            }

        },
        error : function(errorMsg) {
            //请求失败时执行该函数
            alert("图表请求数据失败!");
            myChart.hideLoading();
        }
    })



</script>
</body>
</html>

2、创建实体类

代码语言:javascript
代码运行次数:0
运行
复制
package com.echart.pojo;

public class Product {
    //类别名称
    private String name;
    //销量
    private Integer num;

    public Product(String name, Integer num) {
        this.name = name;
        this.num = num;
    }

    public Product() {
    }

    public String getName() {
        return name;
    }


    public void setName(String name) {
        this.name = name;
    }

    public Integer getNum() {
        return num;
    }

    public void setNum(Integer num) {
        this.num = num;
    }

    @Override
    public String toString() {
        return "Product{" +
                "name='" + name + '\'' +
                ", num=" + num +
                '}';
    }
}

3、创建一个servlet用于后台处理

为了方便,这里就不用SSM框架的Controller查数据库了,自己造几个数据传到前台,测试效果和查数据库是一样的

代码语言:javascript
代码运行次数:0
运行
复制
package com.echart.test;

import com.echart.pojo.Product;
import com.fasterxml.jackson.databind.ObjectMapper;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

@WebServlet("/test")
public class lineTest extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       Product product1=new Product("手机",2000);
       Product product2=new Product("电脑",3000);
       Product product3=new Product("显示器",200);
       Product product4=new Product("主机",5000);

        List<Product> list=new ArrayList<>();
        list.add(product1);
        list.add(product2);
        list.add(product3);
        list.add(product4);
        //提供java-json相互转换功能的类
        ObjectMapper mapper=new ObjectMapper();
        //将list中的对象转换为Json格式的数组
        String json=mapper.writeValueAsString(list);
        System.out.println(json);

        //将json数据返回给客户端
        resp.setContentType("text/html;charset=utf-8");
        resp.getWriter().write(json);



    }
}

4、部署项目之后

既然能绘制出折线图,那饼图、柱状图等等应该也是不在话下的

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-12-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ECharts与java后台交互绘制图表
  • 效果如下:
  • 1、test.html
  • 2、创建实体类
  • 3、创建一个servlet用于后台处理
  • 4、部署项目之后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档