Comparaison entre struts et jsf

Disponible uniquement sur Etudier
  • Pages : 8 (1931 mots )
  • Téléchargement(s) : 0
  • Publié le : 7 septembre 2010
Lire le document complet
Aperçu du document
JUIL/AOUT 07
Mensuel
6 RUE BEZOUT 75014 PARIS - 01 55 56 70 55

Surface approx. (cm²) : 1705

Page 1/4

Wph

Struts, JSF : lequel choisir ?
Struts est un framework open source. Acteur majeur de la sphère Java depuis 2001, c'est aujourd'hui encore le framework web java le plus utilisé, ll répond aux besoins de beaucoup d'applications, mais trouve ses limites dans la gestion d'écranscomplexes ou le développement d'applications fortement événementielles. JSF (Java Server Faces) est une norme JEE (1) depuis la version 1.5. Elle arrive directement en concurrence avec Struts comme technologie Web pour Java. Comme JSF fait partie de la norme, les développeurs Java sont encouragés à l'utiliser.

I

l y a 2 ans, tout portait à croire que Struts serait remplacé par JSF sur bonnombre de projets. Qu'en est-il aujourd'hui7 JSF a-t-il détrôné Struts f L'approche JSF est-elle vraiment révolutionnaire par rap-

port à Struts ? Et comment ce dernier a-t-il évolué ?

Architectures comparées Vous avez dit Struts ?
Struts est basé sur une structuration de la couche présentation en Servlet JSF tout en respectant le modèle MVC 2 (Model-Vue Contrôleur 2). Il a été initialementdéveloppé par Craig R McClanahan (également à l'on gine de Tomcat 4) puis offert à la fondation Apache en 2000. En décembre 2005, Struts a êté scindé en deux projets distincts, le projet

Sun

Refeience Imptem

lntplerii

AcdonServlet '
l ' RequestProcessor

Contrôleur

,

\ métier

r

'

Container Web
Architecture de JSF

Le contrôleur frontal Struts est facilement configurable(la description de la configuration étant déclarative décrite en XML • fichiers strutsconfig.xml et cham-config.xml). Il réalise des traitements communs, par exemple la gestion des exceptions ou la gestion des messages, et délègue la partie variable à des sous-contrôleurs, les Actions. Les formulaires web sont mappés vers des beans dédiés (les ActionsForms) manipulables dans les Actions. Cemodèle est à l'opposé d'une approche orientée composants, comme celle de la spécification JSF où les composants graphiques gèrent les donnêes propres au formulaire. Avec Struts, ces données contenues dans l'ActionForm sont manipulées par l'Action, et affichées dans la vue Si bien qu avec Struts, pour une fonctionnalité donnée, au moins quatre éléments sont à développer et à maintenir • l'Action,l'ActionForm, la Jsp et un fichier de configura lion XML faction mappmgs> du Struts config.xml). Et ce n'est que le minimum requis, en effet si vous voulez gérer la validation, il vous faudra alimenter un autre fichier de configuration. Java Server Faces A la difference de Struts, JSF est une norme disposant de plusieurs implémentations possibles (2).

Container Web
Architecture cie Struts

initialde Struts est resté sous le nom de Struts 1.x. Un second projet, Struts 2, correspond initialement à WebWork 2 et émane de la volonté de rapprochement des communautés Struts et Webwork Nous nous focaliserons dans cet article sur la premiere version, celle la plus communément utilisée aujourd'hui Son approche peut-être qualifiée de " contrôleur dur " et " request based ", en ce sens que la partiecontrôleur du modèle MVC2 est au cceur du système de traitement de la requête. Un contrôleur principal, implémenté par la servlet Struts ActionServlet, est ainsi le point d'entrée de toute requête HTTP constituée d'url se terminant par une extension specifique (par exemple *.do, à paramétrer dans le fichier web.xml). La vue correspond aux JSF et le modèle est représente par les données et règlesmétier à implémenter.

(l) Anciennement appelé J2EE (2) A partir de JEE l 5 chaque serveur d'applications devra fournir son implémentation JSF En J2EE l 4, chaque projet peut choisir son implémentation JSF (Sun Reference Implémentation, MyFaces...).
SQL 0702991100508/TG/MPC Eléments de recherche : SQLI ou SQL Ingenierie : cabinet conseil en stratégie d'entreprise/création de projets, toutes...
tracking img