Heim php教程 PHP开发 Ein Beispiel für die Verwendung von Echarts zur Implementierung von Berichtsstatistiken in JSP

Ein Beispiel für die Verwendung von Echarts zur Implementierung von Berichtsstatistiken in JSP

Dec 29, 2016 pm 04:06 PM

Echarts wird verwendet, um einen Anzeigeeffekt für Datenberichte zu erstellen. Hier stellen wir Ihnen ein Beispiel für die Verwendung von Echarts zur Implementierung von Berichtsstatistiken in Java/JSP vor. Das Beispiel ist sehr einfach, übertragen Sie die Daten einfach an Echarts.

Beginnen Sie mit dem Codieren.

Zuallererst, Tag, dieses Ding wurde seit dem College selten benutzt, aber ich habe nicht damit gerechnet, dass es jetzt noch einmal verwendet wird.

<%@ tag pageEncoding="UTF-8" isELIgnored="false" body-content="empty"%>
<%--自定义div容器id--%>
<%@attribute name="container" required="true" %>
<%--自定义标题--%>
<%@attribute name="title" required="true" %>
<%--自定义子标题--%>
<%@attribute name="subtitle" required="false" %>
<%--自定义数据请求url--%>
<%@attribute name="urls" required="true" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<script src="/echarts-2.1.8/build/dist/jquery.min.js"></script>
<script src="/echarts-2.1.8/build/dist/echarts-all.js"></script>
<script type="text/javascript">
  // 基于准备好的dom,初始化echarts图表
  var myChart = echarts.init(document.getElementById(&#39;${container}&#39;));
  var option={
    title : {
      text: &#39;${title}&#39;,
      subtext: &#39;${subtitle}&#39;
    },
    tooltip : {
      trigger: &#39;axis&#39;
    },
    legend: {
      data:[]
    },
    toolbox: {
      show : true,
      feature : {
        mark : {show: true},
        dataView : {show: true, readOnly: false},
        magicType : {show: true, type: [&#39;line&#39;, &#39;bar&#39;]},
        restore : {show: true},
        saveAsImage : {show: true}
      }
    },
    calculable : true,
    xAxis : [
      {
        type : &#39;category&#39;,
        boundaryGap : false,
        data : []
      }
    ],
    yAxis : [
      {
        type : &#39;value&#39;,
        axisLabel : {
          formatter: &#39;{value} &#39;
        }
      }
    ],
    series : []
  };
  //采用ajax异步请求数据
  $.ajax({
    type:&#39;post&#39;,
    url:&#39;${urls}&#39;,
      dataType:&#39;json&#39;,
      success:function(result){
        if(result){
          //将返回的category和series对象赋值给options对象内的category和series
          option.xAxis[0].data = result.axis;
          option.legend.data = result.legend;
          var series_arr=result.series;
          for(var i=0;i<series_arr.length;i++){
            option.series[i] = result.series[i];
          }
          myChart.hideLoading();
          myChart.setOption(option);
        }
       },
      error:function(errMsg){
        console.error("加载数据失败")
      }
  });
  // 为echarts对象加载数据
  // myChart.setOption(option);
</script>
Nach dem Login kopieren

Um Tags zu schreiben, müssen Sie das JSTL-Paket importieren, das bei Google verfügbar ist. Vor 1.2 waren zwei Pakete erforderlich, ein JSTL und ein Standard. Nach 1.2 scheint es zu einem zusammengeführt zu sein. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>Die Schreibweise dieses Satzes ist ebenfalls etwas anders. Für alle Fälle habe ich zwei Pakete vorgestellt.

Um die Ajax-Anfrage zu verwenden, müssen Sie bei der Einführung von Echarts gleichzeitig das JQuery-Paket einführen.

Im obigen Code ist der rot markierte Abschnitt ein Array, das durchlaufen und herausgenommen werden muss.

Die JSP-Seite führt dieses Tag ein:

<%--
 Created by IntelliJ IDEA.
 User: Administrator
 Date: 2014/11/24
 Time: 12:02
 To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" tagdir="/WEB-INF/tags" %>
<html>
<head>
  <title></title>
</head>
<body>
 <div id="main" style="height: 400px"></div>
 <c:linecharts container="main" title="测试标签" subtitle="测试子标签" urls="/tags"></c:linecharts>
</body>
</html>
Nach dem Login kopieren

Der Front-End-Teil ist jetzt abgeschlossen, und dann kommt der Back-End-Teil.

Verwenden Sie zwei Java-Objekte im Hintergrund, um die zu übertragenden Daten zu kapseln

package bean.newseries;
import java.util.ArrayList;
import java.util.List;
/**
 * Created by on 2014/11/25.
 */
public class Echarts {
  public List<String> legend = new ArrayList<String>();//数据分组
  public List<String> axis = new ArrayList<String>();//横坐标
  public List<Series> series = new ArrayList<Series>();//纵坐标
  public Echarts(List<String> legendList, List<String> categoryList, List<Series> seriesList) {
    super();
    this.legend = legendList;
    this.axis = categoryList;
    this.series = seriesList;
  }
}
Nach dem Login kopieren

Die spezifischen Daten der Serie werden hier platziert:

package bean.newseries;
import java.util.List;
/**
 * Created by on 2014/11/25.
 */
public class Series {
  public String name;
  public String type;
  public List<Integer> data;
  public Series(String name, String type, List<Integer> data) {
    this.name = name;
    this.type = type;
    this.data = data;
  }
}
Nach dem Login kopieren

Fügen Sie im Hintergrundgeschäft Ihre eigenen Daten in das Objekt ein und konvertieren Sie es dann in das JSON-Format:

package tagservlet;
import bean.newseries.Echarts;
import bean.newseries.Series;
import com.fasterxml.jackson.databind.ObjectMapper;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
 * Created by on 2014/11/24.
 */
public class NewTagServlet extends HttpServlet {
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    List<String> legend=new ArrayList<String>(Arrays.asList(new String[]{"最高值","最低值"}));
    List<String> axis=new ArrayList<String>(Arrays.asList(new String[]{"周一","周二","周三","周四","周五","周六","周日"}));
    List<Series> series=new ArrayList<Series>();
    series.add(new Series("最高值","line",new ArrayList<Integer>(Arrays.asList(21,23,28,26,21,33,44))));
    series.add(new Series("最低值","line",new ArrayList<Integer>(Arrays.asList(-2,-12,10,0,20,11,-6))));
    Echarts echarts=new Echarts(legend,axis,series);
    ObjectMapper objectMapper=new ObjectMapper();
    System.out.println(objectMapper.writeValueAsString(echarts));
    response.setContentType("text/html;charset=utf-8");
    PrintWriter out=response.getWriter();
    out.println(objectMapper.writeValueAsString(echarts));
    out.flush();
    out.close();
  }
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    this.doPost(request,response);
  }
}
Nach dem Login kopieren

Weitere Beispiele für die Verwendung von Echarts durch JSP zur Implementierung von Berichtsstatistiken und verwandten Artikeln finden Sie unter PHP chinesische Website!


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)