使用ajax获取数据,完成对echarts图标的渲染,实现效果
2019-03-08 11:24
656 查看
项目放在了github上,如果有需要,可以参考。地址:echartDemo
直接上代码
@Controller public class UserController { @Autowired private UserService service; @RequestMapping("/lineChart") public String lineChart() { return "/lineChart"; } @RequestMapping("/pieChart") public String pieChart() { return "/pieChart"; } @RequestMapping("/barChart") public String barChart() { return "/barChart"; } //折线 柱状取值 @RequestMapping("/chart1") @ResponseBody public List<User> chart1(Model model){ List<User> userList = service.getUserList(); return userList; } //扇形取值 @RequestMapping("/chart2") @ResponseBody public List<charts> chart2(Model model){ List<User> userList = service.getUserList(); List<charts> chart = new ArrayList<charts>(); for (User user : userList) { charts a = new charts(user.getScore(), user.getName()); chart.add(a); } return chart; } } 这里因为pie扇形的值是{value: , name: }, 所以又定义了一个charts实体类,然后循环把查询到的值,添加到chart里面。就可以直接拿到页面使用。 dao层 service层 就是平常的查询方法。
前端代码
这个是折线统计图的代码,其他的两个没有放上来。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>折线图</title> <link rel="stylesheet" type="text/css" href="./statics/layui.css"> <script src="./statics/echarts.min.js"></script> <script src="./statics/jquery.min.js"></script> </head> <body> <div style="width:2000px;height:1800px;"> <a href="./pieChart"><button type="button" class="layui-btn">扇形统计图</button></a> <a href="./barChart"><button type="button" class="layui-btn">柱状统计图</button></a> <a href="./lineChart"><button type="button" class="layui-btn">折线统计图</button></a> <div style="height: 400px" class="" id="lineChart"></div> </div> <script> $(function () { //折线图 var echartsA = echarts.init(document.getElementById('lineChart')); echartsA.setOption({ title: { text: '学生成绩' }, tooltip: { trigger: 'axis', }, legend: { data: ['成绩'] }, grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true }, xAxis: [{ type: 'category', boundaryGap: true, data: [] }], yAxis: [{ type: 'value' }], series: [{ name: '成绩', type: 'line', areaStyle: {normal: {}}, data: [], itemStyle: { normal: { color: '#59aea2' }, emphasis: {} } } ] }); echartsA.showLoading(); var user = []; var score = []; $.ajax({ type: 'post', async: true, url: '${pageContext.request.contextPath}/chart1', data: {}, dataType: 'json', success: function (result) { if (result) { for (var i = 0; i < result.length; i++) { user.push(result[i].name); } for (var i = 0; i < result.length; i++) { score.push(result[i].score); } echartsA.hideLoading(); echartsA.setOption({ xAxis: { type: 'category', boundaryGap: true, data: user }, series: [{ name: '点击量', type: 'line', areaStyle: {normal: {}}, data: score, itemStyle: { normal: { color: '#59aea2' }, emphasis: {} } } ] }); } }, error: function (errorMsg) { //请求失败时执行该函数 alert("图表请求数据失败!"); echartsA.hideLoading(); } }); }) </script> </body> </html>
最后实现的效果:
相关文章推荐
- ajax完成异步的省市联动效果--使用xml接收数据
- Sharepoint2010使用AJAx 获取 OData Service (实现客户端获取sharepoint2010的数据)---第一篇
- 使用etpl的渲染,ajax获取json数据
- 使用XMLHTTP 获取服务器数据,实现无刷新效果
- 使用ajax和json实现迭代数据的效果
- echarts使用ajax接收json数据完成南丁格尔玫瑰图
- [给力原创]使用jQuery-ajax仿新浪微博通知折叠/显示效果,实现数据加载(二)
- ECharts图表组件中级入门篇:如何通过Ajax异步获取图表数据赋值于图表并渲染呈现
- 利用autocomplete.js实现仿百度搜索效果(ajax动态获取后端[C#]数据)
- YII框架中使用jQuery UI : 自动完成(Autocomplete)--本地数据和使用ajax获取远程数据实例
- [给力原创]使用jQuery-ajax仿新浪微博通知折叠/显示效果,实现数据加载
- 使用AjaxPro实现ajax效果
- 不使用Ajax框架实现Ajax效果?
- [翻译]使用ASP.NET AJAX实现幻灯片效果
- 基于对象的JavaScript实现无刷新页面发送和获取数据Ajax.js
- 使用GridView做出列选择效果(获取动态生成的控件.鼠标点选GridView.Ajax控件)
- 【JAVASCRIPT】如何不使用jquery函数和ajax框架实现ajax效果
- AjaxPro.NET实现TextBox智能获取服务端数据功能(Asp.net 2.0)(示例代码下载) 转载
- [翻译]使用ASP.NET AJAX实现幻灯片效果
- 使用XMLHttpRequest 实现ajax效果