IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)



Qu'est ce que Struts?
auteur : Lionel Roux (aka RanDomX)
Selon la définition des auteurs, Struts est un framework Open Source écrit entièrement en JAVA qui permet de construire des applications Web.
Struts est construit autour de technologies qui ont fait leurs preuves comme les servlets JAVA, les JavaBeans, le formalisme XML, ... .
Struts implémente le design pattern MVC Model 2.

Le framework Struts fournit le minimum vital pour construire une application Web professionnelle.

Struts est un projet soutenu par l'Apache Software Foundation. La page officelle se trouve à cette adresse: http://struts.apache.org/.


Struts est-il le meilleur choix pour construire mes applications Web?
auteur : Lionel Roux (aka RanDomX)
Disons le tout de suite, Struts n'est pas la panacée !

Pour écrire une application Web très simple, Struts introduit un niveau de complexité et de mise en route trop important.

En revanche, dès qu'une application prends de l'importance, Struts peut rapidement simplifier les choses.


Qui a écrit Struts ?
auteur : Lionel Roux (aka RanDomX)
Struts a été crée par Craig R. McClanahan, puis offert à la fondation Apache en Mai 2000.
Craig Mc Clanahan a aussi été à l'origine de Tomcat 4, l'implémentation officielle de référence des conteneurs Servlet 2.3 et JSP 1.2.

Il est aujourd'hui le lead manager du projet Java Server Faces (JSR-127) et l'architecte de la couche de presentation Web de la plateforme J2EE chez Sun.

17 autres personnes contribuent activement au développement de ce projet.


Struts peut-il être utilisé dans une application commerciale ?
auteur : Lionel Roux (aka RanDomX)
Struts est distribué sous licence ASF.

Struts peut donc être utilisé dans des applications commerciales dans le respect de ce qui est inscrit dans cette licence.


Comment exécuter un traitement avant le controleur Struts ?
auteur : Lionel Roux (aka RanDomX)
Struts ne fournit pas de mécanisme pour réaliser cela.

Cependant ceci peut fait simplement en suivant l'une des techniques suivantes:
  • Avec un conteneur compatible avec les spécification Servlet 2.3, vous pouvez implémenter un filtre de prétraitement.
  • Avec une application compatible Struts1.1 et plus, vous pouvez redéfinir le RequestProcessor et y intégrer les prétraitements .
  • Avec une application compatible Struts1.0, vous pouvez redéfinir l' ActionServlet et y intégrer les prétraitements


Comment définir une Action comme une page d'acceuil d'une application ?
auteur : Lionel Roux (aka RanDomX)
Le conteneur de Servlet attends d'un fichier de bienvenue référencé dans un noeud <welcome-file> qu'il soit un fichier physique (une page JSP, un fichier plat...).

Ainsi vous ne pouvez pas mapper directement une Action comme fichier de bienvenue.
Toutefois, il est possible de définir dans une page JSP très simple, un forward automatique grâce à la balise <logic:forward>.
Ce forward se chargera alors de retourner l'action demandée.

Dans le fichier struts-config.xml :

<action path="/monaction" ... type="foo.bar.MonType" />
Dans la JSP majsp.jsp :

... <logic:forward name="monaction"/> ...
Dans le fichier web.xml :

<welcome-files> <welcome-file>majsp.jsp</welcome-file> <welcome-file>...</welcome-file> </welcome-files>
L'ouverture de l'application web monapplication retourne le résultat de l'Action mappée par monaction.


Comment utiliser plusieurs ResourceBundle avec Struts ?
auteur : Lionel Roux (aka RanDomX)
Struts 1.1 et plus supporte cette fonctionalité.

Il permet de définir un ResourceBundle par défaut et des ResourceBundles personalisés.
Chaque ResourceBundle personalisé doit être identifié par une clé dans le fichier struts-config.xml :

<message-resources parameter="application.resources"/> <message-resources parameter="foo.bar.custom.myCustomResource" key="Custom"/>
Pour faire référence à ce dernier, vous devez spécifier une valeur pour l'attribut bundle :

<bean:write bundle="Custom" ...>

Comment utiliser plusieurs fichiers de configuration pour un module Struts ?
auteur : Lionel Roux (aka RanDomX)
Pour utiliser plusieurs fichiers de configuration pour un seul module Struts, il suffit de les déclarer dans le paramètre d'initialisation config, séparés par une virgule.

Par exemple, pour le module par défaut :

<init-param> <param-name>config</param-name> <param-value> /WEB-INF/struts-config.xml,/WEB-INF/struts-config2.xml </param-value> </init-param>

Comment faire un "redirect" vers une ressource avec Struts ?
auteur : Lionel Roux (aka RanDomX)
En général, après avoir invoqué une Action, vous souhaitez êtres redirigé vers l'un des mapping définit dans votre fichier de configuration struts-config.xml.

<action path="/monAction" type="struts.action.MonAction" name="monActionForm" scope="session" input="/ma.jsp" validate="true"> <forward name="jsp" path="/jsp.jsp"/> <forward name="..." .../> </action>
Si à la fin de votre Action vous choisissez le <forward> de nom "jsp", Struts va vous renvoyer la page jsp.jsp, mais sans changer l'url http://monserveur/monapplication/monAction.do dans votre navigateur.

Or il peut être intéréssant ou souhaité parfois de changer l'url affichée dans le navigateur pour laisser apparaitre la véritable url de la ressource affichée.

Struts fournit pour cela un attribut qu'il suffit d'ajouter dans ll'élément <forward>: l'attribut rediirect="true".

Ainsi dans l'exemple précédent, cela donnerait :

<action path="/monAction" type="struts.action.MonAction" name="monActionForm" scope="session" input="/ma.jsp" validate="true"> <forward name="jsp" path="/jsp.jsp" redirect="true"/> <forward name="..." .../> </action>