Formation Informatique | Formation Management
Formation Struts 2, développer des applications Web MVC : formation Java / JEE avec Orsys
contact Orsys email Orsys English version Version Française Orsys Formation
   
 

Struts 2, développer des applications Web MVC



Ce cours vise à fournir une compréhension globale du framework Struts 2 vous permettant d'exploiter efficacement ses possibilités dans le cadre d'un développement d'application Web rigoureux. L'ensemble des éléments d'architecture sera abordé théoriquement puis mis en oeuvre dans le cadre d'une migration d'une application Servlet/Jsp en Struts2.

» Participants

Développeurs Java impliqués dans le développement d'une couche de présentation Web.

» Pré-requis

Il est nécessaire que les participants aient déjà une expérience de la programmation de Servlet/Jsp.

» Travaux pratiques

Les exercices pratiques ont été conçus pour illustrer tous les éléments du framework et leur mise en oeuvre dans le cadre d'un développement industriel : tous les exercices comportent une phase d'analyse/conception suivie d'une phase de programmation.

   
 

PROGRAMME

» Rappels et compléments sur l'API Servlet

Rappel sur les mécanismes de base de l'API Servlet/JSP : cycle de vie d'une requête, les différents scopes "request", "session", "application", fichier web.xml.

Compléments sur les mécanismes de filtre et de listener utilisés par le framework Struts2.

Travaux pratiques
Appropriation d'une petite application Web développée en Servlet/Jsp qui sera le fil directeur des exercices suivants et qui permettra sa migration sur le framework Struts2.Thématique : gestion de comptes bancaires (créer, supprimer, créditer et débiter des comptes bancaires).Première étape de migration : mettre en oeuvre un filtre pour calculer le temps de traitement de certaines requêtes, mettre en place un listener pour assurer la restauration/sauvegarde d'une couche métier lors de l'initialisation de l'application et de sa destruction.


» Présentation du framework Struts2

Principales caractéristiques de Struts1 : cycle de vie d'une requête, éléments d'architecture impliqués, contraintes, limites et besoins d'évolution.

Principales caractéristiques de Struts2 : cycle de vie d'une requête, éléments d'architecture impliqués, les bénéfices attendus vis-à-vis de Struts1.

Les technologies clés de Struts2.

Découverte des constituants de base d'une application Struts2 par l'étude de l'implémentation d'une fonctionnalité d'authentification (taglib " struts-tags ", classe action et sa configuration dans struts.xml).

Travaux pratiques
Configurer un projet Eclipse pour un développement Struts2 (librairie et fichier web.xml). Implémenter la fonctionnalité d'authentification vue théoriquement : première utilisation de la taglib " struts-tags ", d'une action POJO, d'une configuration basique d'action dans le fichier struts.xml.


» Le " front Controller " de Struts2

Les fichiers de configuration Struts2 : organisation d'un fichier struts.xml, rôles des fichiers struts.default.xml, et struts.properties.

Le " front Controller " Struts2 : rôle de la classe FilterDispatcher.

Rôle des intercepteurs : principes, intercepteurs par défaut, règles de configuration des intercepteurs pour une action, création de piles d'intercepteurs.

L'intercepteur ServletConfigInterceptor et dépendance avec l'action (les interfaces " Aware ").

Création de ses propres intercepteurs.

Contexte d'exécution d'une action : l'ActionContext.

Travaux pratiques
Intégrer la fonctionnalité d'authentification Struts2 au projet d'origine sans régression (adaptation des JSP concernées en utilisant la taglib struts-tags, intégrer l'action d'authentification au projet, intégrer les fichiers de configuration). Tracer le temps de traitement des authentifications dans un fichier de log en utilisant l'intercepteur " TimerInterceptor ".


» La pile d'objets et langage d'expressions OGNL

Rôles de la pile d'objets et du langage OGNL.

Organisation de la pile d'objets et positionnement dans l'ActionContext.

Règles de construction d'expressions OGNL.

Exemples d'utilisation via des JSP.


» Les classes d'actions Struts2

Les différentes classes d'action : POJO ou extension d'ActionSupport.

Configuration par défaut d'une action : valeurs résultats par défaut et types de résultats standard.

Mapping des paramètres des requêtes sur les propriétés de l'action.

Valeurs résultats prédéfinies et types de résultats prédéfinis (types de rendu).

Configuration spécifique d'une action : méthodes de traitement et résultats multiples.

Factorisation de résultats : les " global-results ".

Traitement des exceptions : l'intercepteur " exception ", le tag " exception-mapping ", factorisation des traitements d'exceptions (" global-exception-mappings ").

Travaux pratiques
Reprendre le projet et l'enrichir pour traiter toutes les RuntimeException par l'affichage d'une page d'erreur de l'application et traiter spécifiquement les erreurs d'authentification au niveau de l'action. Utiliser OGNL dans le développement des deux pages d'erreur.


» Les constituants de la librairie de tags " struts-tags "

Organisation de la librairie de tags : " control tags ", " data tags ", " form ui tags ".

Les " control-tags ": if-elseif-else, append, generator, iterator, merge...

Les "data tags" : a, action, bean, date, i18n, include, push, set, text...

Les "form ui tags" : hidden, label, passwd, textearea, textfield, token, radio, reset...

Mapping des "form ui tag" avec les propriétés de l'action.

Traitement d'un upload de fichier : le tag " file ", l'intercepteur " fileUpload ", implémentation de l'action.


» L'approche " Model Driven "

Objectif du " Model Driven ".

Constituants de cette approche : les intercepteurs " model-driven " et " scoped-modeldriven " et configuration spécifique (" scoped-modeldriven ").

Implémentation modèle CRUD en Struts2 : intercepteur " preparable ", configuration d'action paramétrée, conventions de nommage.

Exemple de mise en oeuvre.

Travaux pratiques
Reprendre le projet et réécrire les JSP en exploitant les possibilités de la librairie struts-tags de manière à supprimer toute utilisation de " scriptlet " et de " jstl ". Implémenter une action " GererCompte " en exploitant l'approche " Model Driven ".


» Internationalisation d'une application Struts2

Principes de l'internationalisation d'une application (les resource bundles struts2).

Constituants struts2 : l'intercepteur " i18n ", le paramètre " request_locale " et variable " locale " de l'utilisateur.

Politique de recherche d'une " resource bundle ".

La classe Action Support et les différentes méthodes getText().

Fichier " .properties " paramétré.

Les " form ui tags " exploitant l'internationalisation.


» Les techniques de validation de Struts2

Les principes de validation (côté client et côté serveur).

Constituants struts2 : l'intercepteur " validation " et interface " Validateable " et "ValidationAware ", la classe ActionSupport , la valeur résultat " input ".

Les balises : " actionerror ", " fielderror " et " actionmessage ".

Validation programmatique : la méthode validate().

Validation déclarative : les fichiers action-validation.xml et les validateurs prédéfinis.

Validation côté " client " : propriété " validate " du formulaire, javascript généré.

Travaux pratiques
Reprendre le projet en externalisant tous les libellés des actions et des JSP dans des fichiers de propriétés en deux langues (français et anglais). Implémenter le choix de la langue à partir de la page d'accueil. Implémenter une validation déclarative sur la page de création/modification d'un compte " côté serveur comme " côté client "


» Utilisation du framework Tiles

Principe du pattern " Composite View " et du framework Tiles.

La librairie de tags " tag-tiles" : développement de layouts et des fragments de page.

Le fichier de configuration " tiles.xml " : déclaration des pages Tiles.

Configuration des actions exploitant des pages Tiles : le result-type " tiles ".

Intégration de Tiles à Struts2.

Travaux pratiques
Reprendre le projet de manière à produire toutes les pages selon un modèle commun de présentation (header, menu, contenu dynamique, footer).


» Autres aspects du framework

Mise en oeuvre bas niveau d'Ajax : configuration de l'action, traitement de la requête asynchrone, implémentation javascript.

La librairie de tags "ajax " et exemple de librairie tiers.

Traitement des erreurs de conversion.

Configuration par annotation.

Travaux pratiques
Reprendre la page création/modification d'un compte et exploiter le tag Ajax " autocompleter " pour rechercher un compte puis afficher son état.

 
     
 
     
   
  Formation Struts 2  
 
Stage pratique - DIF
Réf :  SRB
Prix 2012 : 2150 € H.T.
Durée : 4  jours
 
     
         
  Cliquer sur une session pour réserver  
 
Paris : 11 sept. 12
Strasbourg : 3 sept. 12


Lyon,Aix
Nantes,Rennes
Toulouse,Bordeaux
Bruxelles,Lille
Genève,Sophia-antipolis
Luxembourg
 
   
     
         
  Filières métiers