JSP使用Echarts的最简单的例子


Echarts是百度的页面图表框架,使用其稍作配置就能在web上整出漂亮的图表。

本篇文章简单的介绍一下“JSP使用Echarts的最简单的例子“,例子图如下

关于echarts详细资料可以看这里:http://echarts.baidu.com/index.html

 

图表显示是需要数据的,但是其官网教程中为了演示方便直接在页面js中填入数据,如下面链接所示,周一、周二等数据都是在页面直接写好:

http://echarts.baidu.com/doc/example/line1.html

 xAxis : [
        {
            type : 'category',
            boundaryGap : false,
            data : ['周一','周二','周三','周四','周五','周六','周日']
        }
    ]

而我们更经常的要做的操作是从远程服务器将数据取出,放入图表。熟悉ajax的人,自然可以将上面的代码少做修改,但网上的例子太少,我这边简单贴一下

页面端参考代码:

 

[html]  view plain  copy
 
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  2.     pageEncoding="UTF-8"%>  
  3. <!DOCTYPE html>  
  4. <html>  
  5. <head>  
  6. <meta charset="utf-8">  
  7. <!-- 引入 ECharts 文件 -->  
  8. <script src="js/echarts3/echarts.common.min.js"></script>  
  9. <script type="text/javascript"  
  10.     src="${pageContext.request.contextPath}/js/jquery-3.2.1.js"></script>  
  11. </head>  
  12.   
  13. <body>  
  14.     <!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->  
  15.     <div id="main" style="width: 600px; height: 400px;"></div>  
  16.     <script type="text/javascript">  
  17.         // 基于准备好的dom,初始化echarts实例  
  18.         var myChart = echarts.init(document.getElementById('main'));  
  19.         var url = '${pageContext.request.contextPath}/GetAllDataServlet';  
  20.         $.getJSON(url).done(function(json) {  
  21.             // 2.获取数据  
  22.             salesVolume = json.salesVolume;//销量  
  23.             bussinessVolume = json.bussinessVolume;//营业额  
  24.             months = json.months;//月份  
  25.   
  26.             // 3.更新图表myChart的数据  
  27.             var option = {  
  28.                 title : {  
  29.                     text : 'ECharts 入门示例'  
  30.                 },  
  31.                 tooltip : {},  
  32.                 legend : {  
  33.                     data : [ '销量' ],  
  34.                     data : [ '营业额' ]  
  35.                 },  
  36.                 xAxis : {  
  37.                     data : months  
  38.                 },  
  39.                 yAxis : {},  
  40.                 series : [ {  
  41.                     name : '销量',  
  42.                     type : 'bar',  
  43.                     data : salesVolume  
  44.                 }, {  
  45.                     name : '营业额',  
  46.                     type : 'line',  
  47.                     data : bussinessVolume  
  48.                 } ],  
  49.                 toolbox : {  
  50.                     show : true,  
  51.                     feature : {  
  52.                         mark : {  
  53.                             show : true  
  54.                         },  
  55.                         dataView : {  
  56.                             show : true,  
  57.                             readOnly : false  
  58.                         },  
  59.                         magicType : {  
  60.                             show : true,  
  61.                             type : [ 'line', 'bar' ]  
  62.                         },  
  63.                         restore : {  
  64.                             show : true  
  65.                         },  
  66.                         saveAsImage : {  
  67.                             show : true  
  68.                         }  
  69.                     }  
  70.                 },  
  71.             }  
  72.             myChart.setOption(option);  
  73.         })  
  74.     </script>  
  75.   
  76. </body>  
  77.   
  78. </html>  

服务器端参考代码:

 

 

[java]  view plain  copy
 
  1. @WebServlet("/GetAllDataServlet")  
  2. public class GetAllDataServlet extends HttpServlet {  
  3.     private static final long serialVersionUID = 1L;  
  4.   
  5.     public GetAllDataServlet() {  
  6.         super();  
  7.     }  
  8.   
  9.     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
  10.         /*销量*/  
  11.         Integer[] salesVolume = {10,100,20,56,35,80};  
  12.         /*营业额*/  
  13.         double[] bussinessVolume = {10*10,100*8.5,20*9.5,56*9,35*9.5,80*9};  
  14.         /*横轴, 月份数据*/  
  15.         String[] months = {"1","2","3","4","5","6"};  
  16.           
  17.         Map<String, Object> map = new HashMap<>();  
  18.         map.put("salesVolume", salesVolume);  
  19.         map.put("bussinessVolume",bussinessVolume);  
  20.         map.put("months", months);  
  21.           
  22.         response.getWriter().println(JSON.toJSONString(map));  
  23.           
  24.     }  
  25.   
  26.     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
  27.         doGet(request, response);  
  28.     }  
  29.   
  30. }  

 


使用了FastJson生成json字符串,格式形如:

[html]  view plain  copy
 
  1. {"bussinessVolume":[100.0,850.0,190.0,504.0,332.5,720.0],"months":["1","2","3","4","5","6"],"salesVolume":[10,100,20,56,35,80]}  

 

其他:

实际上你也可以不用json工具,完全自己手写得到上述格式化字符串。

 

项目参考代码:

有一个EclipseJEE的参考代码似乎传不上来,只好传到资源哪里了:

http://download.csdn.net/detail/zhrubin/9837529

 

项目相关Git地址:

https://git.coding.net/zhrb/echartsdemo.git

 

 

转载自https://blog.csdn.net/zhrubin/article/details/46123771


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM