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] coté client, type validwhen, ne sort pas d'erreur


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 85
    Par défaut [Validator] coté client, type validwhen, ne sort pas d'erreur
    D'après la doc que j'ai trouvé, la clause validwhen peut me permettre de contoler côté client que le champ confirmPassword est bien identique au champ password. J'ai créé et vérifier sur la toile ma condition dans validation.xml semble bonne.

    validation.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ...
    <field property="mdpConf" depends="validwhen">
    	<arg0 key="error.mdpConf" />
    	<var>
    		<var-name>test</var-name>
    		<var-value>(*this* == mdp)</var-value>
    	</var>
    </field>
    ...
    Dans la jsp j'ia bien ajouté la balise html:error liée à ma propriété, c'est là que devrait apparaitre mon erreur :
    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
    <tr>
    	<td id="divMdp" class="RechBlocBleu"><label><i18n:message
    		key="Password" /></label></td>
    	<td class="RechBlocCiel"><html:password
    		name="formMonProfil" property="mdp" size="10" maxlength="15" />
    	</td>
    </tr>
    <tr>
    	<td id="divMdpConf" class="RechBlocBleu"><label><i18n:message
    		key="PasswordConf" /></label></td>
    	<td class="RechBlocCiel"><html:password
    		name="formMonProfil" property="mdpConf" size="10"
    		maxlength="15" /><html:errors property="mdpConf"/></td>
    </tr>
    Coté validator-rules j'ia juste récupéré la clause validwhen de struts que j'ai customisé avec mon message d'errreur.

    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
    13
     
    ...
    	<validator name="validwhen" 
    		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"
    				  depends="" msg="errors.invalid.alert" />
    ...
    J'ai sur ce meme champs obligatoire une clause validator "required" qui m'affiche bien la popup javascript en cas d'erreur. A noté que je m'attends à la création d'une méthode javascript validateValidWhen dans la page web au coté de la méthode validateRequired, et que celle ci n'est pas générée (je vérifie dans firebug).

  2. #2
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    A ma connaissance, le validwhen fonctionne seulement côté serveur.

    Sinon, je te déconseille de modifier le fichier validator-rules.xml.

    Si tu ne veux pas utiliser le message d'erreur utilisé par défaut par le Validator, tu peux en définir un dans la balise msg sous la balise field dans ton fichier validation.xml :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <field property="mdpConf" depends="validwhen">
    	<msg name="validwhen" key="errors.invalid.alert" />
    	<arg0 key="error.mdpConf" />
    	<var>
    		<var-name>test</var-name>
    		<var-value>(*this* == mdp)</var-value>
    	</var>
    </field>

    Je te conseille donc de prendre le fichier validator-rules.xml livré avec ta version de Struts.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 85
    Par défaut
    Merci pour ta réponse.

    Sur mon projet on utilise struts 1.1 et validwhen est apparu dans struts 1.2.

    J'étais parti pour me faire un validator-rules.xml tout simplement parceque je ne trouvais pas celui de struts 1.1 sur le net. Je l'ai trouvé ce matin du coup. La version avec validwhen est compatible avec la dtd validator_1_1_3.dtd et non plus la 1_0 comme le mien.

    Puis je prendre une version struts 1.2 facilement? En gros, est ce que ça cassera complètement l'existant, un peu, pas du tout?

    Sinon puis je prendre juste le validator-rules.xml et faire migrer la dtd de référence facilement?

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

Discussions similaires

  1. Validation Coté client
    Par lavoyech dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/02/2014, 16h22
  2. Struts 2 validation coté client
    Par aya02 dans le forum Struts 2
    Réponses: 0
    Dernier message: 18/04/2010, 02h39
  3. struts validator coté client, alertbox sans message
    Par jayjaypg22 dans le forum Struts 1
    Réponses: 2
    Dernier message: 23/02/2010, 11h01
  4. pb validation coté client
    Par Melaba dans le forum Struts 1
    Réponses: 1
    Dernier message: 07/08/2008, 16h59
  5. [Validator]Validation coté client
    Par trihanhcie dans le forum ASP.NET
    Réponses: 2
    Dernier message: 26/11/2007, 16h49

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