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 :

[Validator] depends validwhen ne fonctionne pas !


Sujet :

Struts 1 Java

Vue hybride

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 19
    Par défaut [Validator] depends validwhen ne fonctionne pas !
    EDIT : Reformulation de mon problème !


    J'ai un formulaire avec 2 champs :

    Date de début
    Date de fin

    J'utilise le framwork validator pour mon formulaire
    Voici le contenu de validation.xml qui fonctionne sans problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    ...
    		<form name="ma-form">
        		 <field property="txtDateDebut" depends="required,date">
            		<arg0 key="label.begindate"/>
            		<var>
            			<var-name>datePatternStrict</var-name>
            			<var-value>yyyy/MM/dd</var-value>
            		</var>
            	</field>
      		    <field property="txtDateFin" depends="required,date">
      		    	<arg0 key="label.senddate"/>
      		    	<var>
      		    		<var-name>datePatternStrict</var-name>
      		    		<var-value>yyyy/MM/dd</var-value>
      		    	</var>
      		    </field>
        	</form>
    ...
    Hors, maintenant j'aimerais ajouter une condition :
    DateFin > DateDebut !

    Pour cela j'utilise la règle validwhen :

    Ce qui me donne pour la date de début la même chose mais pour la date de fin ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    ...
     		    <field property="txtDateFin" depends="required,date,validwhen">
      		    	<arg0 key="label.enddate"/>
      		    	<var>
      		    		<var-name>datePatternStrict</var-name>
      		    		<var-value>yyyy/MM/dd</var-value>
      		    	</var>
      		    	<arg1 name="test" key="label.enddate"/>
      		    	<var>
      		    		<var-name>test</var-name>
      		    		<var-value>(*this* > txtDateDebut)</var-value>
      		    	</var>
      		    </field>
    ...
    mais depuis que j'ai ajouté validwhen ça ne marche plus :'(

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 19
    Par défaut
    EDIT :

    J'ai également ça dans mon validator-rules.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ...
          <validator name="validwhen"
              msg="errors.required"
                     classname="org.apache.struts.validator.validwhen.ValidWhen"
                     method="validateValidWhen"
                     methodParams="java.lang.Object,
                           org.apache.commons.validator.ValidatorAction,
                           org.apache.commons.validator.Field,
                           org.apache.struts.action.ActionMessages,
                           org.apache.commons.validator.Validator,
                           javax.servlet.http.HttpServletRequest"/>
    ...
    Pour info j'utilise Struts 1.2.8 ... donc validwhen devrait fonctionner !
    Vous avez une idée ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 19
    Par défaut
    J'ai éditer mes 2 post pour reformulé plus clairement mon problème.
    J'ai également changer le nom du topic qui n'était pas approprié...

    Sinon dans mon struts-config.xml j'ai ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ...
        <action path="/mon-result"  
         	type="com.monpackage.monAction"
         	name="ma-form"
         	input="/formulaire.do"
         	validate="true"
         	>
          <forward name="success" path="mon.resultats"/>
          <forward name="error" path="/WEB-INF/jsp/errors/error.jsp"/>
        </action>
    ...
    Et depuis que j'ai ajouté validwhen ça me redirige sur ma page d'erreure

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 19
    Par défaut
    Je recense un autre post du forum sur le même problème qui déjà à l'époque n'avait pas été résolu !

    http://www.developpez.net/forums/sho...d.php?t=253213
    un autre !
    http://www.developpez.net/forums/sho...d.php?t=186792

    Le problème doit être commun à tous :'(

  5. #5
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    Bonjour,

    il est impossible pour le validewhen de comparer deux dates car les parametres sont des chaines de caracteres.
    De plus, il n'y a aucune informations concernant le pattern à utilisé pour la conversion en java.util.Date avant de faire la comparaison des dates dans les parametres du validwhen.

    la seule comparaison qu'il sait faire c'est avec des nombres (il est possible qu'il fasse justement une erreur en essayant de convertir la date en nombre).

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 19
    Par défaut
    Merci pour ton éclaircicement, et tu as effectivement raison pour les dates !
    magrés cela tu dis que le validwhen ne sait faire que la comparaison avec des nombres ... alors que sur cette page, il y a des tests sur les chaines de caractères :

    http://www.ioicom.com/validator/view...7066AFB7795FFE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    ...
          <!-- validwhen: simple validation -->
          <field property="lastName" depends="validwhen">
            <arg key="validWhenForm.lastName" />
            <var>
              <var-name>test</var-name>
              <var-value>((firstName == null) or (*this* != null))</var-value>
            </var>
          </field>
     
          <!-- validwhen: both fields validation -->
          <field property="fieldA" depends="validwhen">
            <msg name="validwhen" key="validWhenForm.error.both" />
            <var>
              <var-name>test</var-name>
              <var-value>( ((fieldB == null) and (*this* == null)) or ((fieldB != null) and (*this* != null)) )</var-value>
            </var>
          </field>
    ...

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

Discussions similaires

  1. Validation du formulaire ne fonctionne pas
    Par Arzawe dans le forum Langage
    Réponses: 5
    Dernier message: 26/01/2012, 11h47
  2. Réponses: 3
    Dernier message: 02/12/2008, 15h22
  3. AS3-PHP, fonction de validation de fonctionne pas.
    Par azetaz dans le forum Langage
    Réponses: 4
    Dernier message: 30/11/2008, 22h18
  4. Validation formulaire qui ne fonctionne pas
    Par dom59111 dans le forum Langage
    Réponses: 6
    Dernier message: 25/10/2007, 10h18
  5. code action script et xml valide mais ne fonctionne pas
    Par artotal dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 27/03/2006, 16h32

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