[RESOLU][STRUTS][TILES] Problème sur actions génériques
J'ai le problème suivant :
J'utilise Struts avec Tiles pour réaliser le templating de pages.
En particulier, une des tiles consiste à changer dynamiquement de langue (en cliquant par exemple sur un drapeau qui permet le changement).
Le fait de changer de langue en soi-même marche : il suffit de changer le Locale.
Le problème provient du fait que cette action peut être réalisée dans n'importe qu'elle JSP (intérêt de Tiles). Comment réafficher la JSP d'où on vient ?
J'ai testé la solution d'interroger la requête pour obtenir le referer, et créer un ActionForward :
Code:
1 2 3 4
|
String referer = request.getHeader("Referer");
forward = new ActionForward();
forward.setPath(referer); |
Malheureusement ceci impose un
Code:
forward.setRedirect(true);
pour que çà marche.
Qq'un aurait une solution ?
PS : tout code JAVA est interdit dans nos JSP.
[RESOLU][STRUTS][TILES] action générique struts-tiles
Une solution (en anglais) est proposée à l'adresse suivante :
http://forum.java.sun.com/thread.jsp...sageID=3411424
Le principe est le suivant :
1- Toutes les actions héritent d'une même classe qui, lors de l'appel execute() sauvegarde la dernière JSP utilisée dans la session HTTP de l'utilisateur.
2- Lors de l'action de changement de langue, on charge la bonne Locale, puis on redirige vers un global forward qui a pour nom /memePage .
3- le global forward /memePage pointe sur une action qui récupère la dernière JSP sauvée dans la session HTTP, et la réaffiche.
J'ai testé, et çà marche... :D