Попытка передать массив из Java в Jquery для обновления диаграммы Google - PullRequest
0 голосов
/ 04 июня 2019

Итак, я жестко закодировал некоторый код из примеров Google-диаграмм в моем report2.jsp, и он работал в качестве теста.Это код:

<html>
  <head>
    <!--Load the AJAX API-->
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
    <script type="text/javascript">

      // Load the Visualization API and the controls package.
      google.charts.load('current', {'packages':['corechart', 'controls']});

      // Set a callback to run when the Google Visualization API is loaded.
      google.charts.setOnLoadCallback(drawDashboard);

      // Callback that creates and populates a data table,
      // instantiates a dashboard, a range slider and a pie chart,
      // passes in the data and draws it.
      function drawDashboard() {

        // Create our data table.
        var data = google.visualization.arrayToDataTable([
          ['Name', 'Donuts eaten'],
          ['Michael' , 5],
          ['Elisa', 7],
          ['Robert', 3],
          ['John', 2],
          ['Jessica', 6],
          ['Aaron', 1],
          ['Margareth', 8]
        ]);

        // Create a dashboard.
        var dashboard = new google.visualization.Dashboard(
            document.getElementById('dashboard_div'));

        // Create a range slider, passing some options
        var donutRangeSlider = new google.visualization.ControlWrapper({
          'controlType': 'NumberRangeFilter',
          'containerId': 'filter_div',
          'options': {
            'filterColumnLabel': 'Donuts eaten'
          }
        });

        // Create a pie chart, passing some options
        var pieChart = new google.visualization.ChartWrapper({
          'chartType': 'PieChart',
          'containerId': 'chart_div',
          'options': {
            'width': 300,
            'height': 300,
            'pieSliceText': 'value',
            'legend': 'right'
          }
        });

        // Establish dependencies, declaring that 'filter' drives 'pieChart',
        // so that the pie chart will only display entries that are let through
        // given the chosen slider range.
        dashboard.bind(donutRangeSlider, pieChart);

        // Draw the dashboard.
        dashboard.draw(data);
      }
    </script>
  </head>

  <body>
    <!--Div that will hold the dashboard-->
    <div id="dashboard_div">
      <!--Divs that will hold each control and chart-->
      <div id="filter_div"></div>
      <div id="chart_div"></div>
    </div>
  </body>
</html>

Это мой ReportController:

@Controller
public class ReportController {

    @RequestMapping(value = "/report2", method = RequestMethod.GET)
    public String report2() {

        return "report2";
    }
}

Теперь я пытаюсь жестко закодировать что-то очень простое в Java, чтобы передать его в jsp и посмотреть, работает ли оночтобы наконец получить информацию из моей базы данных и построить диаграмму.

Это мой DataTabe.java:

@RestController
public class DataTable {

        @RequestMapping("/data")
        public ArrayList<ArrayList<String>> getData() {
            ArrayList<String> columns = new ArrayList<String>();
            ArrayList<String> values = new ArrayList<String>();
            ArrayList<ArrayList<String>> rows = new ArrayList<ArrayList<String>>();
            columns.add("Name");
            columns.add("Donuts eaten");
            values.add("Artemio");
            values.add("5");
            rows.add(columns);
            rows.add(values);
            System.out.println(rows);

          return rows;
    }
 }   

Теперь я изменил свой report2.jsp для получения информации из Java следующим образом:

      function drawDashboard() {

        var array = $.ajax({
          url: "/data",
          type: "GET"
          }).responseText;    

        var data = google.visualization.arrayToDataTable(array);

Но не работает, я также пытался:

var array = $.get("https://localhost:8443/data");

и

        var array = [];
        $.ajax({
        url: "/data",
        type: "GET",
        success: function(result){
            array = result;
        }
        });

Кажется, что ничего не работает, когда я получаю доступ к /report2 изв браузере ничего не происходит.Я также понятия не имею, как проверить журналы или ошибки из .jsp, очень нового для веб-программирования.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...