• EChart报表插件使用笔记(1)


    报表插件Echart


    java类

    package com.spring.controller;
    
    import java.io.IOException;
    import java.util.Arrays;
    import java.util.Date;
    import java.util.List;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import net.sf.json.JSONArray;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.servlet.ModelAndView;
    
    @Controller
    public class EchartController {
    	
    	/**
    	 * 静态的Echart报表页面
    	 */
    	@RequestMapping(value="user/echart", method = {RequestMethod.POST,RequestMethod.GET})
    	public ModelAndView PostJsonTest(HttpServletRequest request,HttpServletResponse response) throws IOException{
    		ModelAndView mav=new ModelAndView();
    		mav.addObject("time", new Date());
    		mav.setViewName("echart/echart");
    		return mav;
    	}
    	
    	/**
    	 * 动态的Echart报表页面
    	 */
    	@RequestMapping(value="user/echart2", method = {RequestMethod.POST,RequestMethod.GET})
    	public ModelAndView dynamicEchart(HttpServletRequest request,HttpServletResponse response) throws IOException{
    		ModelAndView mav=new ModelAndView();
    		String str[]={"衬衫2","羊毛衫2","雪纺衫2","裤子2","高跟鞋2","袜子2","nickname"};
    		float bar[]={15, 28, 41, 45, 56, 120, 89};
    		
    		List<String> category=Arrays.asList(str);//将数组转换成为list
    		mav.addObject("time", new Date());
    		mav.addObject("listData", category);//list
    		mav.addObject("array", str);//数组
    		
    		mav.addObject("jsonArray", JSONArray.fromObject(str));//转换为json数组
    		mav.addObject("jsonList", JSONArray.fromObject(category));//转换为json数组
    		mav.addObject("jsonInt", JSONArray.fromObject(bar));//转换为json数组
    		mav.setViewName("echart/dynamicEchart");
    		return mav;
    	}
    	
    	
    }
    

    静态页面:

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'echart.jsp' starting page</title>
        
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    	
    	<script type="text/javascript" src="<%=basePath%>resources/echart/esl.js"></script>
    
      </head>
      
      <body>
        	<div id="main" style="height:400px"></div>
        
    	    <script type="text/javascript">
    	        // 路径配置
    	        require.config({
    	            paths:{ 
    	                'echarts' : 'resources/echart/echarts',
    	                'echarts/chart/bar' : 'resources/echart/echarts'
    	            }
    	        });
    	        
    	        // 使用
    	        require(
    	            [
    	                'echarts',
    	                'echarts/chart/bar' // 使用柱状图就载入bar模块,按需载入
    	            ],
    	            function (ec) {
    	                // 基于准备好的dom,初始化echarts图表
    	                var myChart = ec.init(document.getElementById('main')); 
    	                
    	                var option = {
    	                    tooltip: {
    	                        show: true
    	                    },
    	                    legend: {
    	                        data:['销量']
    	                    },
    	                    xAxis : [
    	                        {
    	                            type : 'category',
    	                            data : ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
    	                        }
    	                    ],
    	                    yAxis : [
    	                        {
    	                            type : 'value'
    	                        }
    	                    ],
    	                    series : [
    	                        {
    	                            "name":"销量",
    	                            "type":"bar",
    	                            "data":[5, 20, 40, 10, 10, 20]
    	                        }
    	                    ]
    	                };
    	        
    	                // 为echarts对象载入数据 
    	                myChart.setOption(option); 
    	            }
    	        );
    	    </script>
      </body>
    </html>
    

    动态页面:

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'dynamicEchart.jsp' starting page</title>
        
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    <script src="<%=basePath%>js/jquery.min.js"></script>
    <script type="text/javascript" src="<%=basePath%>resources/echart/esl.js"></script>
      </head>
      
      <body>
            	<div id="main" style="height:400px"></div>
                <input type="text" id="array" class="array" value="${array}" >
                <input type="text" id="listData" class="listData" value="${listData}" >
                <input type="text" id="jsonArray" class="jsonArray" value="${jsonArray}" >
                <input type="text" id="jsonList" class="jsonList" value="${jsonList}" >
                
    	    <script type="text/javascript">
    	        // 路径配置
    	        require.config({
    	            paths:{ 
    	                'echarts' : 'resources/echart/echarts',
    	                'echarts/chart/bar' : 'resources/echart/echarts'
    	            }
    	        });
    	        
    	        // 使用
    	        require(
    	            [
    	                'echarts',
    	                'echarts/chart/bar' // 使用柱状图就载入bar模块,按需载入
    	            ],
    	            function (ec) {
    	                // 基于准备好的dom,初始化echarts图表
    	                var myChart = ec.init(document.getElementById('main')); 
    	                
    	                var jsonList=${jsonList};//接收后台传过来的json数组
    	                alert(jsonList);
    	                var jsona=${jsonArray};//接收后台传过来的json数组
    	                alert(jsona);
    	                
    	                var jsonInt=${jsonInt};//接收后台传过来的json数组
    	                alert(jsonInt);
    	                //便利json数组
    	              /*   $.each(json,function(n,value) {
    	                	alert(value)
    	                }); */
    	                
    	                var option = {
    	                    tooltip: {
    	                        show: true
    	                    },
    	                    legend: {
    	                        data:['销量']
    	                    },
    	                    xAxis : [
    	                        {
    	                            type : 'category',
    	                            data : jsonList
    	                        }
    	                    ],
    	                    yAxis : [
    	                        {
    	                            type : 'value'
    	                        }
    	                    ],
    	                    series : [
    	                        {
    	                            "name":"销量",
    	                            "type":"bar",
    	                            "data":jsonInt
    	                        }
    	                    ]
    	                };
    	        
    	                // 为echarts对象载入数据 
    	                myChart.setOption(option); 
    	            }
    	        );
    	    </script>
      </body>
    </html>
    

    执行效果图:




  • 相关阅读:
    算法-最大公约数
    算法-最大连续子序列和
    iOS开发-Bug锦囊
    iOS开发-简单抽奖
    iOS开发-UIActionSheet简单介绍
    iOS开发-UIActivityIndicatorView简单使用
    iOS开发-UITextView实现PlaceHolder的方式
    iOS开发-Reachability实时检测Wifi,2G/3G/4G/网络状态
    [转]jsPlumb插件做一个模仿viso的可拖拉流程图
    Python 日期和时间
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/7047640.html
Copyright © 2020-2023  润新知