echarts 动态数据交互实例
来源:互联网 发布:淘宝金牌卖家在哪 编辑:程序博客网 时间:2024/04/28 21:58
最近在学习echarts,找到了很多的资料,找起来比较麻烦,为了方便自己以后的使用,特此做个笔记。
首先是echarts如何使用,要先下载echarts相关的包,我这边提供的是echarts3.0的下载地址:http://echarts.baidu.com/download.html</p><p>
之前看到echarts2.0的引入有两种方法:模块化单文件引入和标签式单文件引入,介绍如下,感兴趣的可以看一看:http://study.163.com/course/introduction.htm?
之前在网上找了好多资料,都没有实现,自己整理了各路大神的资料,下面我将介绍一个Demo,实现动态数据交互
1,前台jsp页面</p><p>a.首先引入echarts jar包,我这里还加入了jquery jar包和bootstrap jar包,为了手机上显示美观
<!-- 移动设备优先(让项目友好的支持移动设备) --><meta name="viewport" content="width=device-width, initial-scale=1.0,maximum-scale=1.0,user-scalable=no"><title>echarts动态数据交互</title><link rel="stylesheet" href="<%=request.getContextPath()%>/css/bootstrap.min.css"><script type="text/javascript" src="<%=request.getContextPath()%>/js/jquery-2.1.4.js"></script><script type="text/javascript" src="<%=request.getContextPath()%>/js/bootstrap.min.js"></script><script type="text/javascript" src="<%=request.getContextPath() %>/js/echarts.js"></script>
b.其次为 ECharts 准备一个具备大小(宽高)的
<body><div id="main" style="width: 600px;height:400px;"></div></body>
c,下面就是最主要的部分,初始化echarts实例,并配置</p><p></p><pre name="code" class="javascript"><script type="text/javascript">
$(function(){ var url = '<%=request.getContextPath()%>/ApplyServlet';var id = 'main';setChartBar(url); });//设置ajax访问后台填充柱图 function setChartBar(url){ var Chart=echarts.init(document.getElementById("main")); Chart.showLoading( {text: 'Loding...' }); var categories=[]; var values=[]; $.ajax({ url:url, dataType:"json", type:'post', success:function(json){ categories = json.categories; values = json.values; var option = { tooltip: { show: true }, legend: { data: ['销量'] }, xAxis: [ { type: 'category', data: categories } ], yAxis: [ { type: 'value' } ], series: [ { 'name': '销量', 'type': 'bar', 'data': values } ] }; Chart.hideLoading(); Chart.setOption(option); } }); } </script>
2,后台交互
a,新建ApplyServlet
package com.fpp.action;import java.io.IOException;import java.util.HashMap;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.fpp.util.JsonUtils;public class ApplyServlet extends HttpServlet {/** * */private static final long serialVersionUID = 1L;@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String[] categories = {"鞋", "衬衫", "外套", "牛仔裤"}; Integer[] values = {80, 50, 75, 100}; Map<String, Object> json = new HashMap<String, Object>(); json.put("categories", categories); json.put("values", values); JsonUtils.writeJson(json, req, resp); }}b.配置web.xml
<servlet> <servlet-name>ApplyServlet</servlet-name> <servlet-class>com.fpp.action.ApplyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ApplyServlet</servlet-name> <url-pattern>/ApplyServlet</url-pattern> </servlet-mapping>
c,配置一个工具类JsonUtils
package com.fpp.util;import java.io.IOException;import java.io.PrintWriter;import java.util.Arrays;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.serializer.SerializerFeature;public class JsonUtils {public static void writeJson(Object object, HttpServletRequest request, HttpServletResponse response) { writeJsonByFilter(object, null, null, request, response); } public static void writeJsonByIncludesProperties(Object object, String[] includesProperties, HttpServletRequest request, HttpServletResponse response) { writeJsonByFilter(object, includesProperties, null, request, response); } public static void writeJsonByExcludesProperties(Object object, String[] excludesProperties, HttpServletRequest request, HttpServletResponse response) { writeJsonByFilter(object, null, excludesProperties, request, response); } public static void writeJsonByFilter(Object object, String[] includesProperties, String[] excludesProperties, HttpServletRequest request, HttpServletResponse response) { response.setContentType("text/html;charset=utf-8"); response.setHeader("Cache-Control", "no-cache"); PrintWriter writer = null; try { writer = response.getWriter(); FastjsonPropertyFilter filter = new FastjsonPropertyFilter(); if (includesProperties != null && includesProperties.length > 0) { filter.getIncludes().addAll(Arrays.<String> asList(includesProperties)); } if (excludesProperties != null && excludesProperties.length > 0) { filter.getExcludes().addAll(Arrays.<String> asList(excludesProperties)); } String userAgent = request.getHeader("User-Agent"); if (userAgent.indexOf("MSIE") > -1 && (userAgent.indexOf("MSIE 6") > -1)) { writer.write(JSON.toJSONString(object, filter, SerializerFeature.WriteDateUseDateFormat, SerializerFeature.DisableCircularReferenceDetect, SerializerFeature.BrowserCompatible)); } else { writer.write(JSON.toJSONString(object, filter, SerializerFeature.WriteDateUseDateFormat, SerializerFeature.DisableCircularReferenceDetect)); } writer.flush(); } catch (IOException e) { e.printStackTrace(); } finally { if (writer != null) { writer.close(); } } } }d.FastjsonPropertyFilter,注意,这里需要引入一个包 fastjson-1.2.2.jar
package com.fpp.util;import java.util.HashSet;import java.util.Set;import com.alibaba.fastjson.serializer.PropertyFilter;public class FastjsonPropertyFilter implements PropertyFilter { private final Set<String> includes = new HashSet<String>(); private final Set<String> excludes = new HashSet<String>(); public boolean apply(Object source, String name, Object value) { if (excludes.contains(name)) { return false; } if (excludes.contains(source.getClass().getSimpleName() + "." + name)) { return false; } if (includes.size() == 0 || includes.contains(name)) { return true; } if (includes.contains(source.getClass().getSimpleName() + "." + name)) { return true; } return false; } public Set<String> getIncludes() { return includes; } public Set<String> getExcludes() { return excludes; } }
3,最终的效果
源码地址:点击打开链接
学习相关网址:
echarts jar包下载地址:http://echarts.baidu.com/download.html
echarts API :http://echarts.baidu.com/api.html#echarts
echarts 实例:http://echarts.baidu.com/echarts2/doc/example.html
echarts 配置:http://echarts.baidu.com/option.html#series-pie.data
- echarts 动态数据交互实例
- echarts 动态数据交互实例
- echarts 实例(一:动态数据)
- Echarts与后台java交互 数据动态变化
- 百度echarts后台交互实例
- echarts动态加载数据
- Echarts动态加载数据
- ECharts动态获取数据
- Echarts 动态添加series实例
- Echarts请求json数据实例
- ECharts Java 动态加载数据
- 使用echarts动态加载数据
- echarts ajax 动态获取数据
- Echarts动态加载数据demo
- echarts 动态获取数据demo
- echarts ajax动态调用数据
- Echarts使用,使用springmvc完成数据交互
- Echarts折线图动态获取数据实例(附java后台代码)
- RNNs
- 前端不错的解决方案 ----转自大神张云龙@@@@
- Action Recognition with Trajectory-Pooled Deep-Convolutional Descriptors
- 几种访问谷歌的方法
- 矩阵转置+矩阵相加(三元组)
- echarts 动态数据交互实例
- RHCE 学习笔记(9) 网络管理
- 无法访问 IIS 元数据库。您没有足够的特权访问计算机上的 IIS 网站。
- VS2013 无法使用'inet_ntoa': Use inet_ntop() or InetNtop() instead or define
- ubuntu下使用hexo搭建博客
- timeout
- ios应用版本号设置规则
- 2015 AppStore 最新审核指南
- [java学习]移位运算交换两数的值的出错情况