Parcourir les valeurs de ma liste (liste) de mon Servlet dans un

Marwen++ Messages postés 4 Statut Membre -  
Marwen++ Messages postés 4 Statut Membre -
Je suis nouveau à la programmation Java ee et je suis en train de parcourir les valeurs de ma liste (liste) de mon Servlet dans un javascript code dynamiquement. Je veux montrer toutes mes pays mais pas d'une manière statique.
Mon JS code:

<script> 
            var chartData = [                
                {
                    "country": 'America',
                    "distance": 2                                        
                },
                {
                    "country": 'Canada',
                    "distance": 7                                        
                }
            ];
</script>


Mon Servlet:

 List<Site> liste = metier.listeSite();

        request.setAttribute("liste", liste);        
        request.getRequestDispatcher("geogBarChart.jsp").forward(request, response);
A voir également:

1 réponse

KX Messages postés 19031 Statut Modérateur 3 020
 
Bonjour,

C'est un peu moche mais tu peux utiliser une jsp pour générer ton fichier js.
Pour le client c'est un fichier .js mais derrière tu le traites en JSP avec une boucle.

La solution moins moche c'est de faire un .js qui ne change pas mais qui va appeler un service rest par exemple qui lui renverra la liste en json.
0
Marwen++ Messages postés 4 Statut Membre
 
Merci d'avoir répondre .Mais comment ca ? pouvez vous proposez qqlq chose ? et merci d'avance.
0
KX Messages postés 19031 Statut Modérateur 3 020
 
Je ne sais pas si ton code actuel fonctionne (au pire tu peux regarder cet exemple), mais dans le web.xml tu précises quelle servlet est appelée pour chaque url que tu saisis, donc tu peux marquer une servlet pour un fichier .js

<servlet-mapping>
    <servlet-name>JavaScriptServlet</servlet-name>
    <url-pattern>/js/monFichier.js</url-pattern>
</servlet-mapping>

Dans ta servlet tu fais le
request.getRequestDispatcher("/monFichier.jsp");
et il ne te reste plus qu'à éditer ton JSP avec ta boucle :

<script>var chartData = [
    <c:forEach var="data" items="${liste}">
        {
            "country": '${data.country}',
            "distance": ${data.distance}
        }
     </c:forEach>
];</script>

Dans ta page html ça ne change rien, tu mets ton
<script src="/js/monFichier.js"></script>
qui va appeler la servlet et donc la JSP...
0
Marwen++ Messages postés 4 Statut Membre
 
c'a n'a pas marché .. rien ne s'affiche dans la page jsp àa il n'arrive pas à lire les données entrées
0