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 :

[Struts][Validator] : execution du javascript


Sujet :

Struts 1 Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 112
    Par défaut [Struts][Validator] : execution du javascript
    Bonjour à tous,

    J'ai créer un validator mais je ne suis pas certains que le javascript s'exécute correctement. En effet les alert ne s'affichent pas.
    Je suis avec Struts 1.2.9 , j'ai bien déclarer mon fichier validator.xml et j'utilise la balise <html:javascript>. Existe t'il un autre paramétrage à effectuer et comment savoir si l'exécution à lieu sur le serveur ou sur le client?

    Merci d'avance .

  2. #2
    Membre expérimenté
    Inscrit en
    Mai 2005
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 217
    Par défaut
    Deja, pour la dernière question c'est facile, le JS est du code qui est interpreté par ton navigateur donc c'est client :p

    Sinon, tu as suivi un tuto ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 36
    Par défaut
    Dans le struts-config, tu as bien déclaré ton fichier validator-rules.xml de la manière suivante ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
      		<set-property 
      			property="pathnames" 
      			value="
      				/WEB-INF/struts/conf/validator-rules.xml,
    </plug-in>
    Est ce que tu déclares bien ton tag javascript dans la JSP ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:javascript formName="monFormAValider" dynamicJavascript="true" staticJavascript="false"/>
    Moi, j'utilise DynamicJavascript pour qu'il génère le code de validation des champs de mon form et staticJavascript à false pour qu'il ne m'insere pas tout les code javascript des validateurs dans ma page vu que je les ai mis dans un fichier js.

    Lors de l'affichage de ma page, il me créé deux fonctions de validation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function function validateMonFormAValider(form) { 
    ...
    }
     
    function monFormAValider_required () { 
    ...
    }
    Le code sera évidemment différent pour ta jsp fonction des validators que tu utilises mais déja, est ce que tu vois les functions javascript de validations dans ta page jsp ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 112
    Par défaut
    Citation Envoyé par mavvv
    Le code sera évidemment différent pour ta jsp fonction des validators que tu utilises mais déja, est ce que tu vois les functions javascript de validations dans ta page jsp ?
    J'avais une erreur dans mon javascript c'est pour cela que ma fenêtre alert ne s'affichait pas. maiss ce que je trouve étrange c'est que le message ne peut appraître que s'il y a allé - retour vers le serveur. comment afficher les messages dans une alert sans définir dans le sources les clefs de ce messages à l'avance?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 36
    Par défaut
    Citation Envoyé par anaon
    J'avais une erreur dans mon javascript c'est pour cela que ma fenêtre alert ne s'affichait pas. maiss ce que je trouve étrange c'est que le message ne peut appraître que s'il y a allé - retour vers le serveur. comment afficher les messages dans une alert sans définir dans le sources les clefs de ce messages à l'avance?
    J'avoue ne pas tres bien comprendre ton probleme...
    Tu dis que même si tu active la validation coté client (par l'utilisation du tag javascript), il submit malgré tout ton formulaire et arrive dans ton action associée ?

    Normalement, si ta validation est enclenchée coté client, tes fonctions javascripts de ta JSP doivent t'empecher toute submit de ta page si la validation échoue.

    Cela enclenche normalement, l'affichage de ton message d'alert.

    Pour ma part, je travaille avec un fichier de validation xml du form. Ce fichier a la tete suivante :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <?xml version="1.0" encoding="iso-8859-1"?>
    <!DOCTYPE form-validation PUBLIC
              "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
              "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
    <form-validation>
     
    <global>
     
    </global>
     
    <!-- A formset is a wrapper for one or more forms.-->
    <formset>
     
    <!-- Each form element is given its own name. This should correspond to either the
    form bean name or the action path from your Struts configuration. -->
     
     
    <form name="lmonFormAValider">
     
        <field property="userName" depends="required">
            <arg0 key="authentification.login.error.label.login" />
            <arg1 key="authentificatiln.label.title" />
            <arg2 key="authentification.login.error.label.saisie" />
        </field>
        <field property="userPassword" depends="required">
            <arg0 key="authentification.login.error.label.password" />
            <arg1 key="authentificatiln.label.title" />
            <arg2 key="authentification.login.error.label.saisie" />
        </field>
    </form>
     
    </formset>
     
    </form-validation>
    Dans l'exemple que je cite, je veux vérifier que deux champs (login et password) ont correctement été renseignés.
    Une fois que j'ai réalisé ce fichier de validation, je renseigne mon struts-config pour lui spécifier l'existance de celui ci en modifiant la signature de mon validatorPlugin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
              <set-property 
                  property="pathnames" 
                  value="
                      /WEB-INF/struts/conf/validator-rules.xml,
                      /WEB-INF/struts/conf/authentification/authentification-validator-form.xml" />
        </plug-in>
    Ainsi, lorsque j'arrive sur ma JSP, il utilise ce fichier pour générer automatiquement les différentes validations necessaires à mon form en utilisant, pour les messages d'erreurs, les cléfs spécifiées dans mon validator-form.xml pour retrouver le message associé dans mon formRessource.properties.

    Je ne sais pas si je suis tres clair mais bon...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 112
    Par défaut
    Citation Envoyé par mavvv
    Ainsi, lorsque j'arrive sur ma JSP, il utilise ce fichier pour générer automatiquement les différentes validations necessaires à mon form en utilisant, pour les messages d'erreurs, les cléfs spécifiées dans mon validator-form.xml pour retrouver le message associé dans mon formRessource.properties.

    Je ne sais pas si je suis tres clair mais bon...
    Comment apparaissent tes messages d'erreurs dans ta pages?
    En fait je me posait la question de savoir si s'était coté client ou serveur car dans mes log j'ai une trace qui apparaît et qui est faite par mon RequestProcessor.

    Pour info j'utilise struts-layout en taglib

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 36
    Par défaut
    concernant le fait que tu utilises struts-layout en taglib, je ne peux pas trop te dire car je ne l'utilise pas.

    Mais dans ma jsp, j'ai mes deux fonctions javascript comme décrites dans mon précédent post.

    et l'une de mes deux fonction contient les messages d'erreurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     function monFormAValider_required () { 
         this.a0 = new Array("userName", "Code utilisateur obligatoire@@Authentification@@Veuillez renouveler votre saisie", new Function ("varName", " return this[varName];"));
         this.a1 = new Array("userPassword", "Mot de passe obligatoire@@Authentification@@Veuillez renouveler votre saisie", new Function ("varName", " return this[varName];"));
        }

    Mes messages d'erreurs sont donc pour le required du login par exemple : "Code utilisateur obligatoire@@Authentification@@Veuillez renouveler votre saisie"
    Ils sont un peu différents des messages d'erreurs par défaut car j'ai redéfinis le taglib Javascript pour qu'il me génère des affichages d'erreur différents (fenetre modale au look de mon appli au lieu d'un simple alert javascript).
    Mais le principe reste le meme.
    Et ces messages sont récupérés dans le formResource.properties via mon fichier de validation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <field property="userName" depends="required">
            <arg0 key="authentification.login.error.label.login" />
            <arg1 key="authentificatiln.label.title" />
            <arg2 key="authentification.login.error.label.saisie" />
        </field>
    avec l'erreur associée dans mon formeResource.properties :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    errors.required={0} obligatoire@@{1}@@{2}
    Ce qui donne au rendu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Code utilisateur obligatoire@@Authentification@@Veuillez renouveler votre saisie
    Mais j'ai également modifié la définition de mon tag Form dans ma Jsp pour qu'il lance la validation cliente à chaque fois que je clique sur submit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:form action="/logon" onsubmit="return validateMonFormAValider(this);">
    Donc, des que je submit, il appele cette fonction qui va utiliser la seconde fonction : monFormAValider_required() pour obtenir les messages d'erreur.

    Je ne sais pas trop si je suis clair ni si je répond à ta question...

Discussions similaires

  1. [struts-Validator] pas d'appel javascript
    Par Christophe P. dans le forum Struts 1
    Réponses: 1
    Dernier message: 28/09/2006, 14h41
  2. Réponses: 6
    Dernier message: 21/07/2006, 15h48
  3. [STRUTS][Validation] - Validation dans un execute
    Par SEMPERE Benjamin dans le forum Struts 1
    Réponses: 8
    Dernier message: 07/12/2004, 10h55
  4. Réponses: 9
    Dernier message: 24/03/2004, 12h15
  5. [Struts]Validation de formulaire
    Par djoukit dans le forum Struts 1
    Réponses: 4
    Dernier message: 12/03/2004, 09h12

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