Bonjour � tout le monde,
Je veux construire des histogrammes sur une page web. Apr�s mes recherches et lectures diverses, j'ai alors choisi l'API Chart.bundle.js. Les donn�es de l'exemple trouv� fonctionnent bien. Je voulais construire un histogramme dont les donn�es viennent d'une base des donn�es.
Pour r�aliser cela, je r�cup�re les donn�es par une servlet que j'envoie vers ma page JSP dans un SCRIPT JS. J'ai presque utiliser toutes mes id�es en vain.
Je r�cup�re une liste de la base des donn�es. C'est une liste d'objets avec deux attributs (l'un est une String et l'autre un Integer). Je convertis ma liste d'objet en JSON dans la servlet et je le r�cup�re dans le SCRIPT comme variable Javascript. Pour l'instant �a n'a pas r�ussi.
Je demande alors aide aupr�s de la communaut�. Voici les codes de ma Servlet de mon SCRIPT JS.
Code de la servlet :
SCRIPT Javascript:
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 // création d'objet JSON JSONObject dataObject1 = null; JSONObject dataObject2 = null; // création de String pour récupérer les objets JSON String dataJSON1 = null; String dataJSON2 = null; // listes pour stocker mes données venues de la BD List<String> etiquetes = new ArrayList<String>(); List<Integer> donnees = new ArrayList<Integer>(); // récupération des données de la BD List<Nonshi<String, String, Integer>> lnbplotis = new ArrayList<Nonshi<String, String, Integer>>(); StatistiquesParcelle statp = new StatistiquesParcelle(); lnbplotis = statp.nbreparcellesparlotissement(); // stockage des données dans les listes crées ci-dessus int i = 0; while (i < lnbplotis.size()) { etiquetes.add(lnbplotis.get(i).getAttribut2()); donnees.add(lnbplotis.get(i).getAttribut3()); i++; } // Convertion des listes en Objet JSON dataObject1 = new JSONObject(etiquetes); dataObject2 = new JSONObject(donnees); // transformation des objets JSON en String dataJSON1 = dataObject1.toString(); dataJSON2 = dataObject2.toString(); // envoie des données vars la JSP request.setAttribute("dataJSON1", dataJSON1); request.setAttribute("dataJSON2", dataJSON2); this.getServletContext().getRequestDispatcher(VUE).forward(request, response); }
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 <script> var donnee=JSON.parse(dataJSON2); // convertion des données reçues par JSON //document.getElementById("donnee"); alert(donnee); // cette ligne affiche : {''empty":false} var etiquete=JSON.parse(dataJSON1); //document.getElementById("etiquete"); var myContext = document.getElementById("myChart"); var myChartConfig = { type: 'bar', data: { labels:etiquete, //["Féminin", "Masculin", "Animaux"], datasets: [ { label: "Nombre de Parcelles", data:donnee, //[227, 331, 11], backgroundColor: ['green','yellow','red'], }, //{ //label: "1ère Classe", // data: [107, 115, 2], // backgroundColor: ['red','red','red'], // },{ // label: "2ème Classe", // data: [120, 116, 9], // backgroundColor: ['blue','blue','blue'], //} ] } } var myChart = new Chart(myContext, myChartConfig); </script>
Partager