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 :

[Validation] bypass de la validation [Trucs & Astuces]


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de pmartin8
    Inscrit en
    Novembre 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 306
    Par défaut [Validation] bypass de la validation
    Bonjour

    J'utilise Struts 1.2.9...
    Dans une page, j'ai 2 bouttons qui appel la meme action mais un boutton doit faire la validation du formulaire avec le validator de Stutrs et le second boutton ne doit pas faire la validation. Je pensais avoir trouvé comment contourner la validation mais il semble que ca ne fonctionne pas ...

    Voici mon JSP pour le boutton qui doit controuner la validation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:cancel property="submitBt" styleClass="submit">Voir inventaire</html:cancel>
    Ce qui donne le code html suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" name="submitBt" value="Voir inventaire" class="submit">
    Et mon formulaire est défini de cette facon dans struts-config.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form-bean name="inventoryForm" type="org.apache.struts.validator.DynaValidatorForm">
          <form-property name="ird" type="java.lang.String" />
          <form-property name="forceCode" type="java.lang.String" />

    Et l'Action que j'appel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        <action path="/addInventory" input=".addInventory" validate="true" scope="request" name="inventoryForm" parameter="submitBt" type="com.expressvu.icount.view.action.AddInventoryAction">
          <set-property property="cancellable" value="true"/>
          <forward name="success" path=".addInventory"/>
          <forward name="view-inventory" path="/viewInventory.do" redirect="true"/>
        </action>
    Normalement avec un <html:cancel> et <set-property property="cancellable" value="true"/> je ne devrais pas valider mon formulaire lorsque l'action est appellé mais cela ne fonctionne pas. Mon formulaire est toujours validé!

    Est-ce qu'un pro de Struts pourrait me donner un coup de main?

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 59
    Par défaut
    Je ne me suis jamais servi de la balise <html:cancel/>
    Par contre, pourquoi ne surcharges tu pas la méthode "validate" associée à ton formulaire pour filtrer sur le bouton cliqué?

  3. #3
    Membre averti
    Inscrit en
    Août 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Août 2006
    Messages : 22
    Par défaut
    Une autre solution serait de définir une autre action, mappée sur la même méthode, mais avec validate="false" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        <action path="/addInventoryNoValidate" validate="false" scope="request" name="inventoryForm" parameter="submitBt" type="com.expressvu.icount.view.action.AddInventoryAction">
          <forward name="success" path=".addInventory"/>
          <forward name="view-inventory" path="/viewInventory.do" redirect="true"/>
        </action>
    Puis avec une fonction javascript tu change à la volée l'action qui est lancée...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	function fBa() {
    			document.getElementById('editRegisteredForm').action="/addInventoryNoValidate.do";
    			document.getElementById('editRegisteredForm').submit();
    	}

  4. #4
    Membre éclairé Avatar de pmartin8
    Inscrit en
    Novembre 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 306
    Par défaut
    2 bonnes solutions mais j'aurais vraiment voulu savoir pourquoi mon code plus haut ne fonctionne pas!!

    Est-ce que vous le savez??

  5. #5
    Membre averti
    Inscrit en
    Août 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Août 2006
    Messages : 22
    Par défaut
    Non, perso je ne fais pas comme ça, ça marche très bien comme je fais, c'est assez propre et lisible, et c'est le but.

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 59
    Par défaut
    Dans la definition de ton action, la propriete "cancellable" ne devrait pas être mise à true de la façon suivante plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <action path="/addInventory" input=".addInventory" validate="true" cancellable="true" scope="request" name="inventoryForm" parameter="submitBt" type="com.expressvu.icount.view.action.AddInventoryAction">
          <forward name="success" path=".addInventory"/>
          <forward name="view-inventory" path="/viewInventory.do" redirect="true"/>
        </action>
    [EDIT]Autant pour moi, c'est à partir de struts 1.3 ...[/EDIT]

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

Discussions similaires

  1. Comment valider un tableau avec Validator ?
    Par ghost0408 dans le forum Struts 1
    Réponses: 4
    Dernier message: 23/04/2008, 19h23
  2. Réponses: 6
    Dernier message: 07/02/2008, 16h21
  3. [Struts][Validator] : créer ses propre validator
    Par anaon dans le forum Struts 1
    Réponses: 3
    Dernier message: 10/05/2006, 07h19
  4. Réponses: 23
    Dernier message: 11/04/2006, 17h33

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