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



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 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>