Maîtrisez l’installation du framework java struts 2, destiné à créer de façon productive des écrans d’applications web. Analysez l’application struts2-blank.war, livrée avec Struts 2 et base de vos futurs développement struts 2. Identifiez enfin quelques éléments clés des différences entre struts 1 et struts 2.
Ce tutoriel est un extrait de séances pratiques de la formation STRUTS 2 dispensée par Objis.
Les + objis
70% de travaux pratiques
Clé USB avec tous les outils utilisés + Corrigés TPs
Bilan pédagogique individuel + conseils
Liens utiles
+ de 100 tutoriaux java/jee Objis
10 tutoriaux Struts 1 Objis
Objis, spécialiste formation java depuis 2005
Site web du framework struts
Site téléchargement Struts 2.1.6
Prérequis
Tutoriel Tomcat N°1 : installation Tomcat 6
Téléchargement Eclipse Entreprise ganymede SR2
Objectifs
Télécharger et analyser l’arborescence de struts-2.1.6.zip
Déployer dans tomcat 6 et analyser struts2-blank.war
Comprendre la gestion d’une requête Struts 2
Identifier des éléments de différence struts 1 / struts 2
Comprendre stratégie de démarrage d’un projet struts 2
Programme
Partie 1 : téléchargement struts 2
Partie 2 : analyse
Partie 3 : déploiement struts-blank dans Tomcat 6
Partie 4 : Analyse struts2-blank
Partie 5 : requête struts2
Qui sommes-nous ?
Partie 1 : téléchargement struts 2
Allez sur le site officiel de struts : http://struts.apache.org/
Notez que vous découvrez les dernières versions stables de Struts 1 et de Struts 2.
Cliquez sur struts 2 GA (Generaly Available), correspondant à la dernière version stable de Struts 2. Ici le lien struts-2.1.6. l’écran suivant apparaît.
Cliquez sur la version zip complète (Full), ici struts-2.1.6-all.zip . Le téléchargement commence.
Enregistrez l’archive dans c:formationstruts2outils
Dézippez l’archive dans c:formationstruts2 :
[partie<-2]
Partie 2 : analyse
Répertoire lib
REMARQUE : notez la présence de nombreuses librairies (nommées struts2-xxxxx-plugin-2.1.6.jar) facilitant l’intégration de Struts 2 avec frameworks (spring, sitemesh, dwr, dojo, tiles, jsf…) , outils (junit, testng, jfreechart) et formats de données (xml, json) modernes.
REMARQUE : notez la présence de Struts 1 à travers librairie struts-core-1.3.10.jar (Pour laquelle nous consacrons 10 tutoriaux struts 1).
Répertoire apps
Notez la présence de
— struts2-blank.war, une application struts2 fonctionelle minimale.
— struts2-showcase.war, une application de démonstration de ce que vous pouvez faire avec Struts2
RAPPEL : il est recommandé de commencer vos développements struts 2 à partir de struts2-blank.war.
Répertoire docs
Cliquez sur le fichier index.html pour voir la documentation Struts 2 en local.
Répertoire src
Mettez en évidence l’utilisation de MAVEN pour la construction de Struts2. Mettez également en évidence le caractère multimodulaire de Struts2 . Combien de module ? lesquels ?
Partie 3 : déploiement struts-blank dans Tomcat 6
Installation et démarrage de Tomcat
RAPPEL : installation Tomcat 6pas à pas
L’écran suivant met en évidence une installation réussie de Tomcat 6.
déploiement struts2-blank
Copiez le fichier appsstruts2-blank-2.1.6.war de la distribution struts2 dans le répertoire webapps de tomcat (répertoire de livraison des applications dans Tomcat) (dans la version 2.3.4 de struts 2 le fichier se nomme struts2-blank.war)
lancez le navigateur avec l’url : http://localhost:8080/struts2-blank
La page d’accueil de l’application est index.html…
INFO: L’attribut http-equiv= de la balise META est destiné au le serveur Web qui renvoie la page. L’idée est que le serveur Web, quand un navigateur appelant lui demande de lui transmettre ce fichier HTML, lise en premier lieu le Meta http-equiv= et le mette dans l’entête HTTP qu’il envoie au navigateur Web appelant.
Le navigateur est donc ici redirigé vers l’url http://localhost:8080/struts2-blank-2.1.6/example/HelloWorld.action , qui déclenche dans le framework struts2 l’action HelloWorld du package example (analysé plus bas grâce aux fichiers struts.xml et example.xml).
Le résultat est le suivant :
L’application struts2-blank est bien lancée. reste à l’analyser…
Partie 4 : Analyse struts2-blank
Après le dépot du war struts2-blank-2.1.6.war dans tomcat, ce dernier a dézippé le war et créé l’arborescence suivante :
Vous remarquez une arborescence classique de WAR jee, avec en particulier :
— le fichier de config WEB-INFweb.xml,
— les répertoires WEB-INF (config), WEB-INFclasses (code java + config), WEB-INFlib (librairies).
Cette arborescence sera la même pour un projet web impliquant tout autre framework (spring, hibernate, jsf…). Seules changent les librairies impliquées (.jars dans WEB-INFlib) et les fichiers de configuration
Ecrans : pages JSP
Les écrans de l’application sont des pages JSP, présentes dans le répertoire ‘example’ à la racine de l’arborescence de l’application.
code source
INFO : le répertoire src présent ici n’est pas standardisé. En particulier, vous ne livrerez que rarement vos sources avec votre application.
Notez les fichiers .java ainsi que les fichiers de configuration (.properties et .xml). Ils se retrouvent après compilation/build dans WEB-INFclassesexample
config struts
Configuration
3 fichiers de configuration vont nous intéresser : web.xml, struts.xml et example.xml
Fichier config N°1 : web.xml
C’est le premier fichier à consulter. Il s’agit du fichier de configuration global de l’application web (l’appellation officielle est : descripteur de déploiement). Il se trouve dans WEB-INF de toute application war jee.
Ce fichier configure le filtre (StrutsprepareAndExecuteFilter)par lequel passeront toutes les requêtes (/*)associées à l’application.
Le filtre analyse systématiquement le fichier WEB-INFstruts.xml , fichier de configuration de struts.
Fichier config N°2 : struts.xml
C’est le deuxième fichier de configuration à consulter. Il s’agit du fichier de configuration global spécifique à struts2. Il se trouve dans WEB-INF
Il est l’équivalent du fichier struts-config.xml de struts 1.
Remarquez la balise ‘include’ qui impose d’inclure le fichier de configuration example.xml.
Nous sommes en présence de l’action struts 2 par défaut de cette application. Le nom de cette action est ‘index’. Cette action redirige vers une autre action : l’action HelloWorld du namespace example.
remarquez la balise result imbriquée dans la balise action. On dit qu’une action struts 2 ‘déclenche’ un ‘result’, comme le montre l’architecture globale de struts 2 :
Le result peut être une vue (au sens MVC du terme) comme JSP (à voir dans example.xml ci-dessous) ou encore une redirection vers une autre action , comme c’est le cas ici.
Fichier config N°2 : example.xml
C’est le troisième fichier de configuration à consulter. Il s’agit du fichier de configuration struts local spécifique à l’application en cours de développement. Il se trouve dans WEB-INFclasses
INFO : c’est donc une bonne pratique de créer un fichier de configuration local à votre application.
REMARQUE : les développeurs struts1 remarqueront que dans Struts2 les beans formulaires « ActionForm » ont disparu dans Struts 2. Ils se retrouvent directement intégrés aux classes Action.
Rearque : ici le Result est un fichier JSP à renvoyer à l’utilisateur.
Question : A quoi servent les astérisques (*) ?
Partie 5 : requête struts2
Les actions struts 2 héritent de la classe ActionSupport
Analysez le contenu de la classe ExampleHello
En déduire analyse de la classe HelloWorld
QUESTION : à quoi sert la méthode execute() ? Combien y a t’il de paramètres pour cette méthode ? Quelle difference avec la méthode execute de struts 1 ? Citez 2 avantages.
Analysez le contenu de la classe Login
Validation
Analysez le contenu du fichier login-validation.xml
REMARQUE : la méthode execute() des actions Helloworld et Login retournent SUCCESS , ce qui est une approche différente des actions struts 1 qui retournent un ActionForward. Quel avantage ?
QUESTION : Analysez le code de validation technique des entrées utilisateur, réalisée sous struts 1 par les beans formulaires. Qu’est ce que INPUT ?
Internationalisation
Analysez le contenu du fichier example.properties…
…et du fichier example_es.properties
A quoi servent t’ils ? quand sont’ils utilisés ?
Conclusion
Dans ce tutoriel, vous avez analysé struts2-blank.war et identifié quelques différences Struts 1/Struts 2 (controleur, actions…). Une autre différence fondamentale est la mise en place dans Struts 2 d’intercepteurs. Nous traitons de ce point dans un prochain tutoriel…ainsi que lors de nos sessions de formation struts 2
Pour aller plus loin : Formation STRUTS 2 Objis
Faîtes comme nos clients : choisissez Objis pour votre formation STRUTS 2:
70% travaux pratiques ,
Exercices de reformulation orale
Exercices de mise en situation.
Gagnez en confiance. Prenez du recul.
Clé USB avec cours + outils + TPs + Correction TPs