使用ECharts在jsp頁面中實現折線圖

參考

目的

使用ECharts將後臺數據庫中的數據在jsp頁面中以圖表形式展示,例如折線圖。

方法

我採取的獲取數據庫數據的方式是直接從jsp頁面中嵌入Java代碼,然後再將數據以折線圖形式展示。

代碼實現

jsp頁面的內容如下,直接複製過來:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ page import="java.util.*"%>
<%@ page import="com.bean.IndexData"%>
<%@ page import="com.jdbc.JdbcOperation"%>

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>數據展示頁面2</title>
    <!-- 引入 echarts.js -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/echarts/4.3.0/echarts.min.js"></script>
</head>
<body>
<h1>數據展示</h1> 
	
    <!-- 爲ECharts準備一個具備大小(寬高)的Dom -->
    <div id="lineChart1" style="width: 600px;height:400px;"></div>
    
    <%
    	ArrayList<IndexData> list1  = JdbcOperation.selectIndexByName("煤炭指數");
    	int num = list1.size();
    %>
    
    <script type="text/javascript">
    	var txs = new Array();
    	var tys = new Array();
    	
    	<%
    	for(int i = 0; i<num; i++){
    	    IndexData d = list1.get(i);
    	%>
    	    txs[<%=i%>] = "<%=d.getRelease_date()%>";
    	    tys[<%=i%>] = <%=d.getIndexNum()%>;
    	<%
    	}
    	%>
    
        // 基於準備好的dom,初始化echarts實例
        var myChart = echarts.init(document.getElementById('lineChart1'));
        // 指定圖表的配置項和數據
        var option = {
            title: {
                text: '煤炭指數'
            },
            tooltip: {},
            legend: {
                data:['指數值']
            },
            xAxis: {
                data: txs
            },
            yAxis: {},
            series: [{
                name: '煤炭指數',
                type: 'line',
                data: tys
            }]
        };
 
        // 使用剛指定的配置項和數據顯示圖表。
        myChart.setOption(option);
    </script>

</body>
</html>

結果圖

問題

       使用的方法相對於JSP使用Echarts的最簡單的例子 中使用JSON數據傳值可能繞遠路了,但是遇到了之前不熟悉的問題,即js如何使用jsp中Java代碼中的變量。

       正如參考3中的內容,如果Java變量爲字符串類型,則js在獲取該值時,需要加雙引號。因爲沒有加雙引號,運行出的界面一直是空白的,費了很長時間。另外折線圖的實現參考了教程中最簡單的實現方式,只設置了x,y軸的數據等基本設置,很多樣式和效果還不會用。

<%
    String title = "2020-05-22";
    int i = 100;
%>

<script type="text/javascript">

    var _title = "<%=title%>";    //需要加雙引號
    var _i = <%=i%>;    //不需要加上引號,加上也可以

</script>

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章