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] Impossible de lancer le Validator


Sujet :

Struts 1 Java

  1. #1
    Membre du Club Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Points : 57
    Points
    57
    Par défaut [Validator] Impossible de lancer le Validator
    Bonjour,

    Je suis novice en ce qui concerne Struts. Je désirerais vérifier qu'un champ soit bien rempli en utilisant le plug-in Validator. J'ai cherché des informations dans le forum j'ai tout essayé mais ca ne fonctionne toujours pas. Voici mes fichiers :

    struts-config.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <form-bean name="testValidatorForm" type="org.apache.struts.validator.DynaValidatorForm"> 
        <form-property name="name" type="java.lang.String" /> 
    </form-bean> 
     
    <action path="/testValidator" 
        type="st.ccam.fmm.web.actions.testValidatorAction" 
        name="testValidatorForm" 
        scope="request" 
        validate="true" 
        input="/pages/testValidator.jsp"> 
      <forward name="success" path="/pages/testValidator.jsp" /> 
    </action>
    validator.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <form name="testValidatorForm"> 
      <field property="name" 
             depends="required" 
             bundle="alternate"> 
      <arg0   key="prompt.test.name"/> 
      </field> 
    </form>
    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
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    <validator name="required"
                classname="org.apache.struts.validator.FieldChecks"
                   method="validateRequired"
             methodParams="java.lang.Object,
                           org.apache.commons.validator.ValidatorAction,
                           org.apache.commons.validator.Field,
                           org.apache.struts.action.ActionErrors,
                           javax.servlet.http.HttpServletRequest"
                      msg="errors.required">
     
             <javascript><![CDATA[
                function validateRequired(form) {
                    var isValid = true;
                    var focusField = null;
                    var i = 0;
                    var fields = new Array();
                    oRequired = new required();
                    for (x in oRequired) {
                            var field = form[oRequired[x][0]];
     
                        if (field.type == 'text' ||
                            field.type == 'textarea' ||
                            field.type == 'file' ||
                            field.type == 'select-one' ||
                            field.type == 'radio' ||
                            field.type == 'password') {
     
                            var value = '';
                                                    // get field's value
                                                    if (field.type == "select-one") {
                                                            var si = field.selectedIndex;
                                                            if (si >= 0) {
                                                                    value = field.options[si].value;
                                                            }
                                                    } else {
                                                            value = field.value;
                                                    }
     
                            if (trim(value).length == 0) {
     
                                    if (i == 0) {
                                        focusField = field;
                                    }
                                    fields[i++] = oRequired[x][1];
                                    isValid = false;
                            }
                        }
                    }
                    if (fields.length > 0) {
                       focusField.focus();
                       alert(fields.join('\n'));
                    }
                    return isValid;
                }
     
                // Trim whitespace from left and right sides of s.
                function trim(s) {
                    return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
                }
     
                ]]>
             </javascript>
    ma page jsp, testValidator.jsp :

    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
     
    <u>Formulaire de test avec Validator </u>
     
    <script>
    function alerte(){
    	alert("bouton clické hihi");
    }
    </script>
     
    <p>
      	<html:form action="/testValidator.do" focus="name" onsubmit="return validatetestValidatorForm(this);">
      	<html:text property="name" size="20">
                <bean:message key="prompt.test.name"/>
                </html:text><html:errors property="name"/> 
     
    	<html:submit property="submit" value="Vérifier"/>
        </html:form>
     
    </p>
     
    <bean:write name="testValidatorForm" property="name" />
     
    <html:javascript formName="testValidatorForm"/>
    et ma page testValidatorForm.java :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public ActionErrors validate(ActionMapping mapping, HttpServletRequest request)
        {
    	    ActionErrors errors = super.validate(mapping, request);
    	    if (!errors.isEmpty())
    	    {
    	    	ActionMessage message = new ActionMessage("prompt.test.name.required") ;
    	        errors.add("name",message) ;
    	    }
    	    return errors;
    	 }
    Quelqu'un aurait-il la solution à mon problème? Merci d'avance.
    le génie n'existe pas sans une pointe de folie

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Avril 2007
    Messages : 123
    Points : 129
    Points
    129
    Par défaut
    Salut,

    dans ton struts-config.xml, il faut déclarer ton plugin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
        <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
    </plug-in>

  3. #3
    Membre du Club Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Points : 57
    Points
    57
    Par défaut
    Je l'ai mis.
    Quand on utilise le plug-in Validator, comme le message s'affiche t-il? Dans une pop-up ou directement sur la page?

    Et qu'est qui manque dans mon code pour que ca marche?
    le génie n'existe pas sans une pointe de folie

  4. #4
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Points : 449
    Points
    449
    Par défaut
    Citation Envoyé par emeraudes
    Je l'ai mis.
    Quand on utilise le plug-in Validator, comme le message s'affiche t-il? Dans une pop-up ou directement sur la page?
    Soit uniquement un contrôle du côté serveur (texte HTML), soit du côté client (alert() JS) ET/OU du côté serveur (texte HTML) ... si tu parles bien de "message d'erreur".


    Citation Envoyé par emeraudes
    Et qu'est qui manque dans mon code pour que ca marche?
    Désolé je vois pas !
    Quand on n'a pas d'tête, on a ...

  5. #5
    Membre du Club Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Points : 57
    Points
    57
    Par défaut
    Merci quand même de ton aide. J'ai essayé des tas de choses mais aucun ne fonctionne. Je ne sais pas comment résoudre mon problème.
    le génie n'existe pas sans une pointe de folie

  6. #6
    Membre habitué Avatar de PoichOU
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2006
    Messages : 328
    Points : 161
    Points
    161
    Par défaut
    salut,

    j'ai également un problème avec la validation et mon code est sensiblement le même que le tiens.

    De mon coté j'ai un message d'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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    org.apache.struts.util.StrutsValidator
    org.apache.commons.validator.ValidatorException: org.apache.struts.util.StrutsValidator
    	at org.apache.commons.validator.ValidatorAction.loadValidationClass(ValidatorAction.java:646)
    	at org.apache.commons.validator.ValidatorAction.executeValidationMethod(ValidatorAction.java:555)
    	at org.apache.commons.validator.Field.validateForRule(Field.java:827)
    	at org.apache.commons.validator.Field.validate(Field.java:906)
    	at org.apache.commons.validator.Form.validate(Form.java:174)
    	at org.apache.commons.validator.Validator.validate(Validator.java:367)
    	at org.apache.struts.validator.DynaValidatorForm.validate(DynaValidatorForm.java:110)
    	at org.apache.struts.action.RequestProcessor.processValidate(RequestProcessor.java:928)
    	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:204)
    	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    	at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1072)
    	at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
    	at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
    	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
    	at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
    	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
    	at com.it.habilitations.business.FiltreAccesBase.doFilter(FiltreAccesBase.java:69)
    	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
    	at edu.yale.its.tp.cas.client.filter.CASFilter.doFilter(CASFilter.java:63)
    	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
    	at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6987)
    	at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    	at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    	at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3892)
    	at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2766)
    	at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
    	at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)

    as tu le même message d'erreur ?

  7. #7
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Points : 449
    Points
    449
    Par défaut
    testValidator.jsp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    [...]
      	<html:form action="/testValidator.do" focus="name" onsubmit="return validateTestValidatorForm(this);">
      	<html:text property="name" size="20">
                <bean:message key="prompt.test.name"/>
                </html:text><html:errors property="name"/> 
    
    	<html:submit property="submit" value="Vérifier"/>
        </html:form>
    [...]
    C'est un "T" majuscule, mais je doute que l'erreur vienne de là !
    Quand on n'a pas d'tête, on a ...

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Avril 2007
    Messages : 123
    Points : 129
    Points
    129
    Par défaut
    J'avoue être légèrement allergique aux DynaForm, donc je sais pas trop.

    Mais par contre je ne vois pas de <html:errors/> dans ta jsp, normal?

  9. #9
    Membre du Club Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Points : 57
    Points
    57
    Par défaut
    PoichOU je n'ai pas eu ce message d'erreur.

    Cronycs, il n'y pas de <html:errors/> car je l'ai enlevé. J'ai essayer avec mais toujours aucun résultat.

    J'ai essayer avec onsubmit="return validateTestValidatorForm(this);" mais ca ne marche pas non plus.

    Aidez moi svpppppp
    le génie n'existe pas sans une pointe de folie

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Avril 2007
    Messages : 123
    Points : 129
    Points
    129
    Par défaut
    Ton testValidatorForm.java ne sert a rien.

    Par contre, as-tu declaré tes messages d'erreur dans ton ressources.properties ?

  11. #11
    Membre du Club Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Points : 57
    Points
    57
    Par défaut
    Oui, voici mes définitions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    prompt.test.name=Name
    prompt.test.name.required=<font color="blue">Name is required</font>
     
    errors.required=<hr>
    errors.required={0} is required.
    Il manque quelque chose?
    le génie n'existe pas sans une pointe de folie

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Avril 2007
    Messages : 123
    Points : 129
    Points
    129
    Par défaut
    Elles sont bien dans un fichier .properties ? Est-ce que tu as bien défini l'emplacement de ce fichier dans ton struts-config ?

  13. #13
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:form action="/testValidator.do" focus="name" onsubmit="return validateTestValidatorForm(this);">
    Comme tu as codé l'attribut onsubmit dans le tag html:form pour avoir une validation côté client, il faut ajouter le tag html:javascript avant le tag html:form pour inclure le javascript du Validator dans la page jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:javascript formName="testValidatorForm"/>
    Pour info, c'est écrit dans la FAQ.
    Modératrice Java - Struts, Servlets/JSP, ...

  14. #14
    Membre du Club Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Points : 57
    Points
    57
    Par défaut
    Le fichier .properties fonctionne correctement car les messages s'affichent bien quand je n'utilise pas le validator mais une vérification avec la méthode validate() de l'ActionForm.

    Citation Envoyé par c_nvy
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:form action="/testValidator.do" focus="name" onsubmit="return validateTestValidatorForm(this);">
    Comme tu as codé l'attribut onsubmit dans le tag html:form pour avoir une validation côté client, il faut ajouter le tag html:javascript avant le tag html:form pour inclure le javascript du Validator dans la page jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:javascript formName="testValidatorForm"/>
    Pour info, c'est écrit dans la FAQ.
    Ca ne marche pas non plus, rien ne s'affiche quand je clique sur le bouton "Vérifier". J'avais déjà essayé avant.

    Quand je met une valeur il me l'écrit en dessous alors que je ne lui demande pas ca.

    Je ne sais plus où chercher, j'ai tous essayé.
    le génie n'existe pas sans une pointe de folie

  15. #15
    Membre du Club Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Points : 57
    Points
    57
    Par défaut
    SVPPPPPP aidez moi je suis en train de devenir folle, je cherches je cherches et je ne trouves rien qui m'aiderait à résoudre mon problème. J'ai pourtant mis ce qu'il fallait !!
    le génie n'existe pas sans une pointe de folie

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 116
    Points : 128
    Points
    128
    Par défaut
    Salut,

    Moi aussi je me prend un peu la tete avec...
    Essaye de remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <arg0   key="prompt.test.name"/> 
    <arg position="0" ...>

  17. #17
    Membre du Club Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Points : 57
    Points
    57
    Par défaut
    Aucune amélioration, cela ne fonctionne toujours pas.
    Aieee je commence à désespérer de trouver la solution !!
    le génie n'existe pas sans une pointe de folie

  18. #18
    Membre du Club Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Points : 57
    Points
    57
    Par défaut
    Personne ne peut m'aider????
    SVPPPPPPPPP
    le génie n'existe pas sans une pointe de folie

  19. #19
    Membre du Club Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Points : 57
    Points
    57
    Par défaut
    Quand je regarde le code de la page qui s'affiche sur mon navigateur, voila ce qu'il y a :

    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
    35
    36
    37
    38
    39
    40
    41
     
     
    <u>Formulaire de test avec Validator </u>
    <html>
    <head>
      <title>Log On FMM</title>
      <link rel="stylesheet" href="styles/style.css" type="text/css" media="screen, print" />
      <SCRIPT language="JavaScript" src="../scripts/lib.js"></SCRIPT>
     
    <script>
    function submitForm(idForm){
             form = document.getElementById(idForm);
             if(form.onsubmit != undefined){
                 form.onsubmit();
             }
             form.submit();
         }
    </script>
    </head>
     
    <body width="700">
    <p>
      	<form name="TestValidatorForm" method="post" action="/testValidator.do" onsubmit="return validateTestValidatorForm('TestValidatorForm');">
      		<input type="text" name="name" size="20" value="">
      		<!-- Erreur : "" -->
    		<br><input type="button" name="submit" value="Vérifier" onclick="javascript:submitForm('TestValidatorForm')">
        </form>
    <script type="text/javascript" language="JavaScript">
      <!--
      var focusControl = document.forms["TestValidatorForm"].elements["name"];
     
      if (focusControl.type != "hidden") {
         focusControl.focus();
      } 
      // -->
    </script>
     
     
    </p>
    </body>
    </html>
    et quand je clique sur le bouton "Vérifier", il me met un message d'erreur "Object expected" sur le ligne 154 qui est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form name="TestValidatorForm" method="post" action="/testValidator.do" onsubmit="return validateTestValidatorForm('TestValidatorForm');">
    Cela veut dire qu'il ne trouve pas mon formulaire pour lancer le "onsubmit" ?
    le génie n'existe pas sans une pointe de folie

  20. #20
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 116
    Points : 128
    Points
    128
    Par défaut
    Ton formulaire ds ton struts config est avec un t et non T.
    Sinon CT koi ton erreure de départ ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. [DTD] Validation impossible:fichier dtd introuvable
    Par momjunior dans le forum Valider
    Réponses: 11
    Dernier message: 10/03/2010, 19h30
  2. [1.x] [sfWidgetDate] Masquage d'un champ => validation impossible
    Par Bleys dans le forum Symfony
    Réponses: 2
    Dernier message: 24/06/2009, 11h53
  3. [RMI] Impossible de lancer mon serveur
    Par Dahu dans le forum API standards et tierces
    Réponses: 11
    Dernier message: 11/06/2006, 09h17
  4. [Plugin Tomcat] Impossible de lancer TOMCAT
    Par Dahu dans le forum Eclipse Java
    Réponses: 7
    Dernier message: 03/03/2005, 10h40
  5. impossible de lancer xmlrad
    Par hachach dans le forum XMLRAD
    Réponses: 3
    Dernier message: 07/09/2004, 16h52

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