Framework MVC
Struts 2
Réalisé par :
Hamza
16/06/2019
PLAN
Présentation du FrameWork
Installation du FrameWork
1. Déploiement
2. La création des classes "Action"
3. La création des JSP
4. Le mapping
Comparaison entre Struts1 et Struts2
Conclusion
Présentation du FrameWork
Fusion de Struts 1 et de WebWork, Struts 2 constitue le nouveau framework
de persistance de la communauté Open Source Apache. Son fonctionnement se
veut ouvert aux technologies Web et s’intègre parfaitement aux applications
J2EE respectant nottamment Spring. Présent depuis peu sur le marché, Struts 2
se veut être la nouvelle référence de développement Web.
Struts 2 intègre la nouvelle architecture MVC2. Il se trouve être plus flexible et
propose plus de fonctionnalités que la version 1 tout en diminuant le couplage
entre les objets.
Installation du FrameWork
1. Déploiement
Pour une installation de base et rapide,
Apache a mis à notre disposition des
projets pré-installés au format WAR. Celui
qui nous intéresse sera le fichier "struts2-
[Link]" que vous pourrez trouver
à l'adresse "/apps" de l'archive. Si vous
travaillez sous Eclipse, vous pouvez
l'importer via la fenêtre d'import (File ->
Import) en choisissant "WAR File" (Web ->
WAR File).
2. Création des classes ‘ Action* ’
Une fois le framework déployé, la suite concerne la programmation de
l'application. On commencera par les classes " Action* " , c’est une des
nouveautés de Struts 2.
Le développeur n'est plus contraint d'étendre une classe donnée et libère au
maximum des objets du J2EE pour faciliter les tests unitaires. Ca laisse
notamment la possibilité de créer une classe mère pour ses controleurs, dans
laquelle vous pourrez écrire tout leur code commun et qui implémentera
l'interface "ActionSupport".
3. La création des JSP
Struts2 a conservé le système de balises propres du type "<s:></s:>".
Pour l'utiliser dans les JSP, il suffit d'ajouter le tag suivant :
<%@ taglib prefix="s" uri="/struts-tags" %>.
NB : L'utilisation de ces balises typées est obligatoire pour la réalisation
d'un formulaire.
4. Le mapping
Struts2 n'utilise plus de servlet mais des "Action*" reliées à une servlet globale. Un mapping
doit être réalisé dans [Link] afin de définir les traitements pour action, ainsi que leurs
retours dans les différents cas (succès, échec,…). Les actions sont précisées par des classes
et, éventuellement, par un nom de méthode ce qui permet d'avoir plus d’actions dans une
même classe.
Comparaison entre Struts1 et Struts2
Caractéristiques Struts 1 Struts 2
Un objet Action de Struts 2 peut implémenter l'interface Action,
avec également d'autre interfaces qui permettent d'utiliser des
services personnalisés et optionnels. Struts 2 fournit une classe
Struts requiert qu'une classe Action
basique ActionSupport pour implémenter des interfaces
étende une classe abstraite basique.
couramment utilisées. En revanche, une interface Action n'est pas
Classe Action Programmer avec des classes abstraites
requise. N'importe quel objet POJO* avec une signature peut être
au lieu d'interfaces est un problème
utilisé comme un objet Action de Struts 2.
courant avec Struts 1.
*POJO est un acronyme qui signifie plain old Java object que l'on peut
traduire en français par bon vieil objet Java.
L'objet Action de Struts 2 n'est pas couplé à un conteneur. La
L'objet Action de Struts 1 possède des
plupart du temps les contextes de la Servlet sont représentés
dépendances avec l'API Servlet car
comme une simple "Map", permettant aux objets Actions d'être
Dépendance avec la HttpServletRequest et
testés à part. Struts 2 peut néanmoins toujours utiliser les
Servlet HttpServeltResponse sont passés dans la
HttpServletRequest et HttpServletResponse si besoin. Néanmoins,
méthode "execute" quand l'objet Action
d'autres éléments d'architecture réduisent, voir éliminent, le
est appelé.
besoin de les utiliser directement.
Un obstacle majeur pour tester les objets
Action de Struts 1 est que la méthode
"execute" expose l'API servlet. Une Les objets Action de Struts 2 peuvent être testés en instanciant
Testabilité
extension tierce, Struts TestCase, offre l'objet, fixant les propriétés et invoquant les méthodes.
un ensemble d'objets au comportement
similaire pour Struts 1.
Conclusion
Le framework Struts 2 repose sur une déclaration de l'architecture sous forme de
fichiers XML ou avec des annotations Java localisées dans les fichiers des classes
d'actions. Struts 2 est un framework orienté actions. Les actions sont décomposées en
trois rôles.
Premièrement, les actions jouent le rôle le plus important du framework en
encapsulant le traitement et le travail à réaliser par le service.
Deuxièmement, les actions permettent de manipuler automatiquement les
données des requêtes lors des transferts.
Troisièmement, le framework détermine quel résultat doit être retourné et la vue
à afficher en réponse à un traitement.
Pour résumer, Struts 2 repose donc sur le modèle de conception de type MVC II. Il
permet un développement plus rapide, plus souple et résout plusieurs problèmes de
conception