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 2 Java Discussion :

Validation form avec un redirect-action


Sujet :

Struts 2 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 100
    Par défaut Validation form avec un redirect-action
    Bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <action name="action1" class="action1">
            <result>maPage.jsp</result>
    </action>
    <action name="action2" class="action2">
             <result name="success">autrePage.jsp</result>
             <result name="input" type="redirect-action">action1</result>
    </action>
    L'action1 sert à afficher 'maPage.jsp'.
    Dans 'maPage.jsp' il y a un formulaire qui déclenche 'action2'.
    Si dans 'action2' il y a une erreur par rapport à la validation du formulaire, on redirige vers 'action1' pour réafficher la page avec les erreurs.

    Le problème c'est que les messages d'erreur ne s'affichent pas.
    Ils sont perdus en cours de route, parce qu'on appelle une autre action.
    Avez-vous une solution à ce problème ?
    Merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Par défaut
    Slt,

    Un peu de code nous aiderait beaucoup je pense. (action, jsp, struts.xml, ...)
    Cela devrait être automatique

    ++

    --

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 100
    Par défaut
    Ma jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <s:actionerror/>
    <s:form action="action2">
    	<s:datetimepicker name="checkin" label="checkin" displayFormat="dd/MM/yyyy" required="true"/>
    	<s:submit/>
    </s:form>
    Le formulaire est envoyé vers action2


    Dans Action2.java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    //Champs checkin obligatoire
    @RequiredFieldValidator(type = ValidatorType.FIELD, message = "You must enter a check-in date.")
    public void setCheckin(Date checkin) {
    	this.checkin = checkin;
    }
     
    public String execute() throws Exception { 
    	 return SUCCESS;
    }
    Si je ne remplis pas le champs dans la jsp, alors l'action retourne INPUT.
    D'après mon struts.xml, on retourne alors vers l'action1, qui affiche la page.
    Le problème c'est que les messages d'erreur sont perdus entre action2 et action1.

    Je suppose que je n'applique pas la bonne méthode.
    Comment fait-on d'habitude en cas de mauvaise validation pour réafficher la page avec les messages d'erreur?

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Par défaut
    Cela pourra surement t'aider.

    http://www.developpez.net/forums/d73...-2-freemarker/

    Sinon pourquoi tu fait la vérification que lors de ton action2 ??
    Tu pourrais pas vérifier les données lors de ton action1 ?
    ++

    ---

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 45
    Par défaut
    Il me semble que ça suffit :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <action name="action1" class="action1">
            <result>maPage.jsp</result>
    </action>
    <action name="action2" class="action2">
             <result name="success">autrePage.jsp</result>
             <result name="input">maPage.jsp</result>
    </action>

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 100
    Par défaut
    Merci
    Mais le problème c'est que j'ai besoin de faire appel à mon action1 qui initialise des données à afficher sur la page.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 45
    Par défaut
    Vu que c'est suite à une validation, tu n'a normalement pas besoin de réinitialiser la page.
    As-tu essayé la configuration que j'ai posté au dessus ?

Discussions similaires

  1. [PHP 5.0] Valider form avec un checkbox
    Par Invité dans le forum Langage
    Réponses: 3
    Dernier message: 07/08/2011, 00h31
  2. action form avec proprieté tableau de String
    Par toure32 dans le forum Struts 1
    Réponses: 1
    Dernier message: 21/03/2008, 09h34
  3. Réponses: 2
    Dernier message: 01/10/2007, 10h27
  4. [VB.net][VS2005] Validation d'une form avec errorProvider
    Par WriteLN dans le forum Windows Forms
    Réponses: 6
    Dernier message: 12/05/2006, 13h02
  5. Réponses: 3
    Dernier message: 02/12/2004, 08h50

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