Итак, я жестко закодировал некоторый код из примеров 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, очень нового для веб-программирования.
Спасибо!