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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 1 Java Discussion :

Redirection qui ne marche pas.


Sujet :

Struts 1 Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 35
    Points : 25
    Points
    25
    Par défaut Redirection qui ne marche pas.
    Au sein d'un fichier java correspondant a une action, et en manipulant une javax.servlet.http.HttpServletResponse, je suis actuellement en train d'essayer d'effectuer une redirection vers une URL relative de la maniere suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    public Action perform (ActionMapping mapping,
    			      ActionForm form,
    			      HttpServletRequest req,
    			      HttpServletResponse res) {
     
    String fullUrl	= "page.do?function=test";
    res.sendRedirect(fullUrl);
    Le pb est que quand je fais ca, je tombe sur une page 404. Si je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String fullUrl	= "http://monserveur.com/cgi-bin/monim/jsp/page.do?function=test";
    res.sendRedirect(fullUrl);
    la ca passe.

    Or je n'ai pas de moyen de recuperer simplement les informations avant page.do, et je n'ai pas non plus les moyens de recuperer facilement l'url...

    Donc, je me demande comment je peux forcer la redirection relative

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Dans ton action tu fais un forward standard:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return mapping.finForward("redirection");
    Dans ton struts-config, au niveau du forward "redirection" correspondant à ton action, tu rediriges vers ton action "page.do?function=test" au lieu de rediriger vers une jsp.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 35
    Points : 25
    Points
    25
    Par défaut
    Le pb, que je n'ai effectivement pas signalé avant, c'est que
    page.do?function=test n'est pas statique.

    Du coup, je peux pas l'ecrire en dur dans le struts-config.xml.

  4. #4
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 237
    Points : 181
    Points
    181
    Par défaut
    Pour récupérer l'url, tu peux utiliser ceci :

    String referer = request.getHeader("referer");

    ensuite tu peux faire :

    ActionForward forward = new RedirectingActionForward();
    forward.setPath(referer);

    Mais dans struts, la méthode qui est appelé n'est pas perform() mais execute()

    pour récupérer l'url, tu peux utiliser aussi la balise du taglib html :
    <html:base />

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 35
    Points : 25
    Points
    25
    Par défaut
    String referer = request.getHeader("referer"); me donne ce que je veux, il ne me reste plus qu'a le mettre quelque part.

    Par contre, j'espere que ca va bien me le donner comme je veux dans chaque environnement (celui ou ca marche est un environnement de dev, en prod, c'est peut etre autre chose).

    Y a t'il un moyen de verifier la compatibilite de cette methode dans tous les environnement?

    Merci

  6. #6
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Je viens de me rappeler:
    essaie ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String fullUrl = "/page.do?function=test";
    res.sendRedirect(fullUrl);
    En gros, rajouter le "/" devant ton chemin pour qu'il soit interprété en tant
    que chemin relatif.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Système] redirection qui ne marche pas
    Par alpking dans le forum Langage
    Réponses: 2
    Dernier message: 05/11/2006, 23h17
  2. redirection sur une action qui ne marche pas
    Par nesbla dans le forum Struts 1
    Réponses: 5
    Dernier message: 04/08/2006, 20h16
  3. redirection qui ne marche pas...
    Par sam01 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/04/2006, 10h16
  4. Réponses: 3
    Dernier message: 08/09/2003, 15h06
  5. Réponses: 9
    Dernier message: 07/05/2003, 12h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo