Je souhaite afficher les données de ma base de données sous forme de graphiques en barres.
J'ai essayé d'utiliser HashMap pour transmettre les valeurs du contrôleur à javascript.
MyController.java:
hist.jsp:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 @GetMapping("/Hist") public String barGraph(Model model) { ApplicationContext context = new ClassPathXmlApplicationContext("Spring-Module.xml"); PTS_POINTS_HISTORY_DAO ptsHistDAO = (PTS_POINTS_HISTORY_DAO) context.getBean("PtsPointsHistoryDAO"); model.addAttribute("surveyMap", ptsHistDAO.barGraph()); //ptsHistDAO.barGraph() returns Map<String, Integer> return "Hist"; }
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 <div id="containerx" style="width:100%; height:400px;"></div> <script> Highcharts.chart('containerx', { chart: { type: 'column' }, title: { text: 'Total Redeem' }, xAxis: { categories: [['${surveyMap.keySet()}']] }, yAxis: { max: 10000, min:0, title: { text: 'Numbre of Loylaty Points Redeemed' } }, tooltip: { pointFormat: '<span style="color:{series.color}">{series.name}</span>: <b>{point.y}</b> ({point.percentage:.0f}%)<br/>', shared: true }, plotOptions: { column: { stacking: 'permillion' }}, series: [{ name: 'Fulfilled', data: [9667, 0, 5694, 2752, 200] }, { name: 'Cancelled', data: [500, 3000, 300, 2, 1] }, { name: 'Pending', data: [3, 500, 400, 2, 50] }] }); </script>
Pièce jointe 484749
```
Je m'attendais à ce que chaque clé soit représentée par sa valeur dans le graphique à barres, mais en réalité, toutes les clés ne représentent que la première valeur du graphique.
attendu:
x1: 20151514 y1: 9667 annulés, 500 remplis, 3 en attente
ce que je reçois:
x1: [20151514,20151513,20151512 ..] y1: 9667 annulés, 500 remplis, 3 en attente