vers l'accueil formulaire de contact

Tutoriel struts 2 N°1 : installation et analyse

Votre formation STRUTS 2 avec Objis, spécialiste formation java depuis 2005

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-default.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-default.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

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 :\formationstruts2\outils

- Dézippez l’archive dans c :\formationstruts2 :

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-1.3.10 (Pour laquelle nous consacrons 10 tutoriaux struts 1).

Répertoire apps

Notez la présence de
— struts2-default.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-default.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 \apps\struts2-blank-2.1.6.war de la distribution struts2 dans le répertoire webapps de tomcat (répertoire de livraison des applications dans Tomcat)

- lancez le navigateur avec l’url : http://localhost:8080/struts2-blank-2.1.6

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-default est bien lancée. reste à l’analyser...

Partie 4 : Analyse struts2-default

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-INF\web.xml,
— les répertoires WEB-INF (config), WEB-INF\classes (code java + config), WEB-INF\lib (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-INF\lib) 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-INF\classes\example

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-INF\struts.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-INF\classes

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 4 : 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 ?

Partie 5 : création nouveau projet

- Analysez le pom.xml présent dans META-INF

En déduire une stratégie de création d’un projet Struts2 à partir de Maven.

Conclusion

Dans ce tutoriel, vous avez analysé struts2-default.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

- Si vous appréciez notre sens du partage, devenez membre ’classic’ du Club Objis.
- Accélérez significativement votre maîtrise de Struts 2 avec un coach Objis : devenez membre Silver / Gold du Club Objis.