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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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";
	}
hist.jsp:
Code jsp : Sélectionner tout - Visualiser dans une fenêtre à part
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>

Nom : highchart.PNG
Affichages : 297
Taille : 14,6 Ko
```

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