Tutoriel struts 2 N°1 : installation et analyse

/////Tutoriel struts 2 N°1 : installation et analyse

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 ?

presentation-objis-conseil-formation-java-soa2.png

Partie 1 : téléchargement struts 2

 Allez sur le site officiel de struts : http://struts.apache.org/

tutoriel_struts2_objis_installation_1.png

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.

tutoriel_struts2_objis_installation_2.png

 Cliquez sur la version zip complète (Full), ici struts-2.1.6-all.zip . Le téléchargement commence.

tutoriel_struts2_objis_installation_3.png

 Enregistrez l’archive dans c:formationstruts2outils

tutoriel_struts2_objis_installation_4.png

 Dézippez l’archive dans c:formationstruts2 :

tutoriel_struts2_objis_installation_5.png

[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).

tutoriel_struts2_objis_installation_7.png

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

tutoriel_struts2_objis_installation_8.png

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.

tutoriel_struts2_objis_installation_20.png

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)

tutoriel_struts2_objis_installation_9.png

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

La page d’accueil de l’application est index.html…

tutoriel_struts2_objis_installation_30.png

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 :

tutoriel_struts2_objis_installation_10.png

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 :

tutoriel_struts2_objis_installation_12.png

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.

tutoriel_struts2_objis_installation_13.png

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.

tutoriel_struts2_objis_installation_14.png

Notez les fichiers .java ainsi que les fichiers de configuration (.properties et .xml). Ils se retrouvent après compilation/build dans WEB-INFclassesexample

tutoriel_struts2_objis_installation_15.png

config struts

tutoriel_struts2_objis_installation_16.png

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.

tutoriel_struts2_objis_installation_21.png

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.

tutoriel_struts2_objis_installation_17.png

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 :

architecture_struts2.png

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.

tutoriel_struts2_objis_installation_22.png

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

tutoriel_struts2_objis_installation_25.png

 En déduire analyse de la classe HelloWorld

tutoriel_struts2_objis_installation_24.png

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

tutoriel_struts2_objis_installation_26.png

Validation

 Analysez le contenu du fichier login-validation.xml

tutoriel_struts2_objis_installation_27.png

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

tutoriel_struts2_objis_installation_28.png

…et du fichier example_es.properties

tutoriel_struts2_objis_installation_29.png

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

2018-01-27T15:57:03+01:00

Contactez nous

241 rue DUGUESCLIN, 69003 Lyon

Web : Objis : spécialiste formation Java