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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    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.

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 123
    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 confirmé Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    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?

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

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    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 !

  5. #5
    Membre confirmé Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    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.

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

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 328
    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 éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    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à !

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 123
    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 confirmé Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 123
    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 confirmé Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    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?

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

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