comment dans une action Struts, au niveau de la méthode execute(), faire une redirection vers une url d'un autre serveur (différent de celui où se trouve l'appli struts) ?
Version imprimable
comment dans une action Struts, au niveau de la méthode execute(), faire une redirection vers une url d'un autre serveur (différent de celui où se trouve l'appli struts) ?
je pense que si tu déclare un forward propre à ton action qui pointe vers l'adresse de ton choix et que dans la execute() tu retourne ce forward ca passe.
voici un extrait du code:
#Struts-config.xml
#MyAction.javaCode:
1
2
3
4
5
6 <action path="/myAction" type="fr.my.struts.action.MyAction"> <forward name="success" path="http://www.voila.fr" redirect="true"/> </action>
#MyPage.html (url = "http://localhost/context/mypage.html)Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { ActionForward af = mapping.findForward("success"); String url = af.getPath(); String newUrl =url+"?"+request.getQueryString(); return new ActionForward(newUrl); }
à la soummission du formulaire, une nouvelle page HTML s'affiche avec le message d'erreur:Code:
1
2
3
4
5 <form method="get" action="/context/myAction.do" target="_blank"> ... <INPUT type="submit" value="Valider"> </form>
la redirection vers "http://www.voila.fr" ne fonctionne pas ...Citation:
une idée ?
C'est normal , l'attribut path de la balise forward indique un fichier à ouvrir dans ton appli. C'est donc bien ce qu'il te dit, il ne trouve pas le fichier www.voila.fr puisqu'il n'existe pas. Peut être qu'il y a un autre attribut qui permet de définir une url dans la balise forward mais je ne suis pas sure et je ne vais pas pouvoir t'aider plus que ça dsl ...
essaye de mettre à la fin de ton action
Code:
1
2 response.sendRedirect("www...."); return null;
la dernière réponse fonctionne
Merci