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 :

Paramètrer la page appelée après execution de la méthode Validate()


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2006
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 48
    Par défaut Paramètrer la page appelée après execution de la méthode Validate()
    Bonjour à tous,

    J'utilise au sein de plusieurs pages JSP un <c:import> d'une page JSP contenant un formulaire. La validation de ce formulaire est effectuée dans la méthode validate() de l'ActionForm associé.

    Voici mon problème: lorsqu'une erreur est détectée dans validate(), Struts redirige vers la page JSP contenant le formulaire, qui est une page "toute nue" ne contenant que ce formulaire. Mais j'aimerais qu'il me renvoye vers la JSP "englobante", celle qui contient le <c:import>. Cela doit donc être géré dynamiquement, car ce n'est qu'à l'exécution que l'on sait quelle est cette page.

    J'ai déjà fait une redirection dynamique dans la méthode exectute() d'une Action, en renvoyant une ActionForward paramètrée. Mais cette manière de faire est impossible dans la méthode validate() de l'ActionForm.

    Est-il possible de faire ce genre de chose en utilisant la méthode Validate() pour la validation des formulaires?

    Je vous remercie d'avance pour toute information qui pourrait me mettre sur la voie.

    Bonne continuation à tous,
    Houbbba.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Avril 2007
    Messages : 123
    Par défaut
    Dans ton struts-config.xml, tu dois avoir un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <action path="/submitFormulaire" type="MyAction"
    			input="page jsp" name="ActionForm">
    </action>
    s'il y a une erreur, ce sera automatiquement redirigé vers la jsp indiqué dans le champ "input"

  3. #3
    Membre averti
    Inscrit en
    Février 2006
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 48
    Par défaut
    Merci pour ta réponse Cronycs,

    Mais comme je l'ai mentionné dans mon message:
    Cela doit donc être géré dynamiquement, car ce n'est qu'à l'exécution que l'on sait quelle est cette page.
    Pour info, j'ai également essayé, dans la méthode validate(), de modifier l'Input dynamiquement en utilisant les objets mapping et request passé à la méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mapping.setInput(request.getHeader("referer"));
    mais j'obtient cette exception:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    java.lang.IllegalStateException: Configuration is frozen
    	org.apache.struts.config.ActionConfig.setInput(ActionConfig.java:219)
    	com.woof.struts.form.QuickLoginForm.validate(QuickLoginForm.java:86)
    	org.apache.struts.action.RequestProcessor.processValidate(RequestProcessor.java:928)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:204)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    La vie est dure...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2007
    Messages : 36
    Par défaut
    Va faire un tour sur ce post, ca pourra peut-être t'aider : http://www.developpez.net/forums/sho...d.php?t=318993

  5. #5
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 49
    Par défaut
    Je crois que ce que Houbbba recherche n'est pas de choisir la page qui sera chargée dans une Action, mais dans la méthode validate d'un form.
    Etant donné que cette méthode validate ne renvoie pas un ActionForward, mais les messages d'erreurs à afficher sur la page, savoir comment construire soi-même un ActionForward n'aide pas (ou peu) dans ce cas.
    Si quelqu'un d'autre a une idée, ce problème m'intéresse aussi.

  6. #6
    Membre averti
    Inscrit en
    Février 2006
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 48
    Par défaut
    Merci pour vos réponses,

    En effet thomzon, c'est exactement mon problème. Et je n'y ai toujours pas trouver de solution

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

Discussions similaires

  1. [ZF 1.8] Libérer les paramètres dans l'URL après visite d'une page avec parametre
    Par mymind dans le forum Zend Framework
    Réponses: 3
    Dernier message: 24/07/2009, 11h00
  2. [PHP 5.0] Créer un fichier HTML aprés execution de la page PHP
    Par johnson95 dans le forum Langage
    Réponses: 10
    Dernier message: 20/12/2008, 12h01
  3. charger une page apres execution d'une fonction
    Par lacsap49 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/03/2006, 16h25
  4. Réponses: 1
    Dernier message: 10/02/2006, 17h19

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