Le 14 septembre 2017, nous avons publié une version actualisée de notre Politique de confidentialité. En utilisant video2brain.com vous vous engagez à respecter ces documents mis à jour. Veuillez donc prendre quelques minutes pour les consulter.

Découvrir Java pour le web

Aller plus loin avec JSTL et EL

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Générez des tableaux de données HTML et des graphiques en JavaScript grâce aux différentes options de JSTL et aux fonctions d'EL.
07:40

Transcription

Nous allons maintenant approfondir nos connaissances sur les JSTL et sur EL. Pour cela on va essayer de finaliser notre « suivi.jsp » qui, pour l'instant, a encore beaucoup d'éléments qui restent la maquette. Alors si on le lance on a encore de la maquette, le tableau du bas, qui est complètement factice, ce ne sont pas les tâches de la base de données, et puis les deux statistiques. Pour cela, j'ai rajouté dans le projet une classe de statistiques qui ne fait que récupérer les données utiles à l'établissement de nos graphiques. Donc c'est une classe métier, qui est d'ailleurs dans « entités ». A partir d'une liste de tâches avec laquelle elle a été créée, cette classe métier va permettre de calculer des totaux à partir de flux. Les flux sont une partie très pratique de Java 8 qui permet de travailler sur des collections et de filtrer des collections, d'effectuer des opérations d'agrégation, en utilisant ici des lambda expressions. Donc j'isole la durée de chaque tâche et j'en fait la somme ici. La durée ayant été rajoutée dans les attributs. Ici j'ai rajouté un champ « calculer durée » qui est divisé ici par 3600000, qui est le nombre de millisecondes dans une heure, pour avoir la durée en heures. Nos statistiques vont nous permettre d'avoir le nombre d'heures par projet, et, éventuellement, par projet et par jour, en utilisant des méthodes privées qui sont là. Et aussi une méthode pratique pour avoir les « N » derniers jours pour les statistiques. On était sur les dix derniers jours. On a tous les éléments pour mettre à jour notre servlet et mettre à disposition les données à la vue. Pour ça, notre servlet est ici. En prenant, pour l'instant, des projets qui ne dépendent pas de l'utilisateur. Donc il va falloir le faire en fonction de l'utilisateur. Voici une façon de faire. J'ai ajouté cette partie, à partir du curseur jusque là. Je vais importer les classes nécessaires. Première chose : je vérifie si je n'ai pas d'utilisateur, je renvoie l'index pour en choisir un. Sinon, je reste sur « suivi ». Donc j'utilise cette variable « vue » pour faire le « forward ». Comme je le faisais avant, sauf que là c'est par une variable. Si j'ai un utilisateur, je prends toutes les tâches rattachées à cet utilisateur. Pour cette tâche, je crée mes statistiques et je créé tous les attributs nécessaires à ma vue, c'est-à-dires les tâches, pour pouvoir remplir le tableau, par exemple. L'utilisateur, mais ça je l'avais déjà. Les statistiques, les dix derniers jours, d'où le « 10 ». Et ici j'isole, à partir du flux des tâches, j'extrais les projets, et j'enlève les doublons pour avoir juste une liste de tous les projets présents dans les tâches. Donc j'ai toutes mes données prêtes pour la vue. Il ne me reste plus qu'à aller au niveau de ma vue. Je vais rajouter quelques « taglib ». J'avais déjà le « c », ici, qui est le core. Ici dans « functions», on a quelques fonctions utiles. Il se peut que je ne les utilise pas, mais on verra comment les inclure systématiquement dans toutes les pages. Et « fmt », très pratique pour tout ce qui est formatage, et aussi traduction de sites si jamais vous avez un site multilangues, vous pourrez utiliser « fmt » pour effectuer plusieurs versions de vos pages, adapter la langue du texte de la page à l'utilisateur. Nous, on va l'utiliser pour le formatage des dates. Il ne nous reste plus qu'à prendre toutes les parties statiques de notre site et les rendre dynamiques. Ici, la liste des tâches. Je vais regarder une tâche pour voir le parallèle. Avant on avait « <tr<td » pour la date, la durée, le nom de la tâche, et le projet. Ici je remplace par une date dynamique avec le « fmt » qui me permet de formater la date, en lui passant la date de début que je veux formater et le format de la date que je veux. J'ai aussi la durée, que je vais afficher. La durée en heure, d'ailleurs. Je vais aussi afficher le titre avec un « c:out » pour éviter les injections de XSS, et le nom du projet. Je vais enlever la première ligne. On va maintenant s'occuper des statistiques dans la partie JavaScript. Les labels de mes projets, qui sont sous forme de tableaux, je vais les faire avec des « forEach ». Nouveauté dans mon « forEach »: j'utilise le « varStatus ». « varStatus » me permet d'avoir une variable que je nomme comme je veux, ici : « status », et qui va permettre d'avoir des informations sur ma boucle. Ici par exemple, quand je ne suis pas sur le dernier élément, je mets une virgule, avec le « c:if », qui me permet de faire des opérations conditionnelles avec les JSTL. Je ne mets une virgule que si je ne suis pas sur le dernier élément. Si je suis sur le dernier élément : pas de virgule, c'est une énumération. Affichage du titre. Je vais faire la même chose pour data ici. J'ai enlevé l'intitulé du tableau, le crochet fermant. Je fais exactement la même chose en appelant dans les stats le « getTotal ». Pour la deuxième partie, je vais utiliser quelque chose d'un peu plus complexe, puisque je vais faire deux boucles imbriquées pour produire autant d'éléments de « datasets » qu'il y a de projets. Donc j'ai une boucle des projets. Pour chaque projet, je vais énumérer les jours. Et pour chaque jour, le total de travail par jour. Chose intéressante : j'utilise aussi le « status » 175 avec l'indice ici pour sélectionner la couleur pour le projet. En choisissant l'utilisateur, on sélectionne toutes les tâches qu'il a effectuées. On peut isoler et visualiser les tâches pour cet utilisateur. Et on a la liste des tâches avec leur durée. On a pu faire des statistiques dynamiques avec les JSTL et l'Expression Language. On va voir maintenant comment faire plusieurs pages et réutiliser certaines parties des pages, donc composer des nouvelles pages.

Découvrir Java pour le web

Développez une application web avec Java. Apprenez à écrire des servlets, des entités ​J​PA (Java Persistence API) d'accès aux données et des pages JSP (Java Server Pages).

2h06 (23 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :25 janv. 2017

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !