© 1 Taglibs Applications Struts Taglibs
© 2 Applications Struts Les Tags Libraries Struts Bean : Accès aux JavaBean, aux ressources Html : Gestion des formulaires, champs de saisie, liens Logic : traitements itératifs, conditionnels Nested : Utilisation des taglibs dans des contextes imbriqués Tiles : Structuration des pages, définition de composants réutilisables
© 3 Taglibs Applications Struts La Taglib Bean Amélioration des tags JSP, et Interaction avec les objets représentant le modèle de l’application Permettre : –La définition de nouveaux beans à partir de sources diverses, –L’affichage d’un bean (ou d’une de ses propriétés) dans la JSP Taglib Bean
© 4 Taglibs Applications Struts Attributs d’un Tag Id : identifiant pour nommer un nouveau bean Name : identifiant utilisé pour retrouver un bean existant Property : nom de la propriété recherchée du bean Scope : visibilité associée au bean (page, request, session, application) Taglib Bean
© 5 Taglibs Applications Struts Création d’un Bean (1) Créer un nouveau bean Référencer un bean existant Créer un nouveau bean initialisé à la valeur d’une propriété d’un autre bean Taglib Bean
© 6 Taglibs Applications Struts Création d’un Bean (2) Existence d’autres tags de création, faisant la copie de beans existants (ou de propriétés de beans) : Les beans créés de cette façon le sont avec la visibilité “page”. Taglib Bean
© 7 Taglibs Applications Struts Affichage d’un Bean (1) Le contenu d’un Bean, ou d’une propriété de Bean, est converti en une String et copié dans la réponse Utilisation possible de propriétés indexées ou imbriquées Taglib Bean
© 8 Taglibs Applications Struts Affichage d’un Bean (2) Formater une valeur d’un bean –Attribut format du tag Localisation des patterns de formatage (fonction de la langue) –Embarquer les patterns dans les bundles de ressources (number.format=#,##0.00) <bean:write name='mybean' property='number' format='#,##0.00' formatkey='number.format'/> Taglib Bean
© 9 Taglibs Applications Struts Messages Affiche un message “internationalisé”. Message identifié par une clef Il est possible de spécifier des paramètres optionnels Le fichier de ressources permet de faire l’association entre la clef et le message correspondant "/> myPage.title = Welcome to our site message.hello = Hello {0} ! Taglib Bean
© 10 Taglibs Applications Struts La Taglib Html Tags nécessaires à la création d’interfaces utilisateur, notamment les formulaires Permettent : –De remplir automatiquement les champs à afficher –De retourner les valeurs Autres tags permettant : –D’afficher des messages d’erreur –De gérer les liens et les sessions Taglib Html
© 11 Taglibs Applications Struts Formulaires (1) Représente un formulaire de saisie, associé à un bean dérivant de ActionForm Chaque champ du formulaire doit correspondre à une propriété du bean. Le bean sert à renseigner les champs du formulaire, puis à stocker les saisies de l’utilisateur lorsque le formulaire est soumis à la servlet contrôleur Taglib Html
© 12 Taglibs Applications Struts Formulaires (2) button cancel checkbox file hidden radio submit select option options image multibox password text textarea reset Les tags suivants s’utilisent à l’intérieur du tag Taglib Html
© 13 Taglibs Applications Struts La Taglib Html - Exemple Un formulaire permettant de se loguer Username : Password : Taglib Html
© 14 Taglibs Applications Struts Erreurs Affiche les messages d’erreurs en attente (résultat de la méthode validate d’un ActionForm par exemple) Peuvent être placés n’importe où dans la page. Pas d’affichage “parasite” si aucun message d’erreur en attente –Permet de réutiliser la page de saisie pour afficher les messages d’erreur Le texte du message est récupéré via les ressources de l’application (idem ) Taglib Html
© 15 Taglibs Applications Struts Hyperliens Génère un élément HTML (ancre, ou lien vers une URL spécifiée) Génère un élément HTML pour l’image spécifiée par l’URL L’encodage d’URL est automatiquement appliqué, pour garder la session en cas d’absence des cookies. Taglib Html
© 16 Taglibs Applications Struts Checkboxes (1) Une checkbox ne renvoie la valeur spécifiée dans l'attribut value que si elle est cochée Si la checkbox n'est pas cochée, –Il faut explicitement donner une valeur <html:checkbox property="someprop" value="true">Yes Taglib Html
© 17 Taglibs Applications Struts Checkboxes (2) Dans l’action String somepropValue = null; if((somepropValue = request.getParameter("someprop"))!=null) { // ckecked Sytem.out.println("The box is checked and its value is " + somepropValue); } else { // not ckecked Sytem.out.println("The box is not checked"); // set the value someprop = "false"; } Taglib Html
© 18 Taglibs Applications Struts La Taglib Logic Regroupe les tags permettant d’ajouter des traitements logiques dans les JSP –Reprend l’essentiel des tags disponibles dans la JSTL (JSP Standard Tag Library) –Conditions sur la génération de texte –Boucles sur les collections d’objets –Gestion du flot de l’application forward, redirect Taglib Logic
© 19 Taglibs Applications Struts Comparaisons de valeurs Affiche le contenu du tag si le résultat de la comparaison est vrai L’attribut value est comparé à l’un des attributs de comparaison: cookie, header, parameter, et property et/ou name Error: a username must be specified Taglib Logic
© 20 Taglibs Applications Struts Gestion de collections Permet d’iterer sur une Collection: évalue le contenu du tag pour chaque élément contenu dans la Collection Taglib Logic
© 21 Taglibs Applications Struts Autres Tags, Évalue le contenu du tag si la valeur est une sous-chaine de la variable spécifiée, Évalue le contenu du tag si la valeur est présente, Redirige vers la page indiquée Ex Taglib Logic
© 22 Taglibs Applications Struts Extension des tags de base, qui permettent l’utilisation de beans imbriqués. Permet aux tags d’avoir connaissance de leur environnement Cette relation est basée sur les associations entre les beans eux- mêmes. La Taglib Nested Taglib Nested
© 23 Taglibs Applications Struts Contient des tags utilisés pour créer des composants dynamiques réutilisables Permet la construction de pages Web en assemblant des “morceaux” de pages réutilisables, appelés Tiles Ex.: header, footer, menu, body Chaque Tile est une page JSP et peux être elle-même assemblée à partir d’autres Tiles. La Taglib Tiles Taglib Tiles
© 24 Taglibs Applications Struts Tags Tiles Insère une Tile avec la possibilité de passer des paramètres (appelés attributs). Permet d’associer un nom logique à l’ensemble “URL d’une Tile / valeurs d’attributs”. Les définitions peuvent être faites dans une page JSP, ou dans un ou plusieurs fichiers de déclarations. Définit un attribut à passer à une Tile. Ne peut être utilisé qu’associé aux tags 'insert' et 'definition‘. Taglib Tiles
© 25 Taglibs Applications Struts Tiles : exemple
© 26 Taglibs Applications Struts La Taglib struts-layout Bibliothèque permettant de développer des écrans à destination des applications web de gestion –Pas fourni en standard avec Struts –Améliorations des contrôles de saisies au sein d'un formulaire –Grille d'affichage de données (avec support de pagination) –Tags de génération d'onglets Web –Utilisation d'arborescences Web Struts-layout