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 1.3.9] histoire de validator - infos ?


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 190
    Par défaut [Struts 1.3.9] histoire de validator - infos ?
    Bonjour,

    J'essaye de mettre en place des validator dans un petit exemple de saisie+submit/validator+ page affichage info, j'ai vu qu'on devait personnaliser certaines fonctions dans le validation-rules.xml, tel que mask, required, minlength, maxlength, date, etc..

    required fonctionne, mais il ne trouve pas la methode maxlength, malgre le javascript, cela ne semble pas repondre ou matcher le mapping

    Je n'ai pas d'erreur des fichiers validation et validation-rules au lancement du tomcat

    j'ai un no such method validateMaxLength, quand je submit pour passer a l'ecran suivant.

    Une idée, une piste ?

    Merci d'avance pour vos infos

    j'utilise un struts 1.3.9, mon ecran est une actionForm.
    INFO: Starting Servlet Engine: Apache Tomcat/6.0.14
    28 oct. 2007 17:05:42 org.apache.struts.action.ActionServlet initChain
    INFO: Loading chain catalog from jar:file:/C:/Users/bordi/workspace/TestStruts/WEB-INF/lib/struts-core-1.3.9.jar!/org/apache/struts/chain/chain-config.xml
    28 oct. 2007 17:05:42 org.apache.struts.validator.ValidatorPlugIn initResources
    INFO: Loading validation rules file from '/WEB-INF/validator-rules.xml'
    28 oct. 2007 17:05:42 org.apache.struts.validator.ValidatorPlugIn initResources
    INFO: Loading validation rules file from '/WEB-INF/validation.xml'

    28 oct. 2007 17:05:43 org.apache.catalina.core.ApplicationContext log
    INFO: ContextListener: contextInitialized()
    28 oct. 2007 17:05:43 org.apache.catalina.core.ApplicationContext log
    INFO: SessionListener: contextInitialized()
    28 oct. 2007 17:05:43 org.apache.coyote.http11.Http11Protocol start
    INFO: Démarrage de Coyote HTTP/1.1 sur http-8000
    28 oct. 2007 17:05:43 org.apache.jk.common.ChannelSocket init
    INFO: JK: ajp13 listening on /0.0.0.0:8009
    28 oct. 2007 17:05:43 org.apache.jk.server.JkMain start
    INFO: Jk running ID=0 time=0/63 config=null
    28 oct. 2007 17:05:43 org.apache.catalina.startup.Catalina start
    INFO: Server startup in 2076 ms
    28 oct. 2007 17:06:07 org.apache.struts.chain.ComposableRequestProcessor init
    INFO: Initializing composable request processor for module prefix ''
    28 oct. 2007 17:06:07 org.apache.struts.validator.ValidatorForm validate
    GRAVE: No such validation method: org.apache.struts.validator.FieldChecks.validateMaxLength(java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionErrors, javax.servlet.http.HttpServletRequest)
    org.apache.commons.validator.ValidatorException: No such validation method: org.apache.struts.validator.FieldChecks.validateMaxLength(java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionErrors, javax.servlet.http.HttpServletRequest)
    at org.apache.commons.validator.ValidatorAction.loadValidationMethod(ValidatorAction.java:604)
    Un extrait du fichier validation.xml :
    Code xml : 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
         <form name="animal">
            	<field property="nom"
            	       depends="required,maxlength"
            	       page="0*">
            	       <arg key="animal.errors.nom"/>
            	       <var>
                          	   <var-name>maxlength</var-name>
                       	       <var-value>20</var-value>
                       </var>
            	</field>      	
            	<field property="dateNaiss"
            	       depends="required,date"
            	       page="0">
            	       <arg key="animal.errors.dateNaiss"/>
            	       <var>
            	       		<var-name>datePattern</var-name>
            	       		<var-value>dd/MM/yyyy</var-value>
            	       </var>
            	</field>
     
            	<field property="type"
            			depends="required"
            			page="0">
            			<arg key="animal.errors.type"/>
                </field>
     
                <field property="proprietaire.nom"
                       depends="required,minlength,maxlength,mask"
                       page="1">
                       <arg key="identite.nom"/>
                       <var>
                       	       <var-name>minlength</var-name>
                       	       <var-value>2</var-value>
                       </var>
                       <var>
                          	   <var-name>maxlength</var-name>
                       	       <var-value>20</var-value>
                       </var>
                       <var>
                          	   <var-name>mask</var-name>
                       	       <var-value>${lettre}</var-value>
                       </var>
                </field>
     
                    </form>
     
       </formset>
    Un extrait de mon fichier validation-rules.xml :
    Code xml : 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
    <validator name="maxlength"
                classname="org.apache.struts.validator.FieldChecks"
                   method="validateMaxLength"
             methodParams="java.lang.Object,
                           org.apache.commons.validator.ValidatorAction,
                           org.apache.commons.validator.Field,
                           org.apache.struts.action.ActionErrors,
                           javax.servlet.http.HttpServletRequest"
                  depends=""
                      msg="errors.maxlength">
     
             <javascript><![CDATA[
                function validateMaxLength(form) {
                    var isValid = true;
                    var focusField = null;
                    var i = 0;
                    var fields = new Array();
                    oMaxLength = new maxlength();
                    for (x in oMaxLength) {
                        var field = form[oMaxLength[x][0]];
     
                        if (field.type == 'text' ||
                            field.type == 'textarea') {
     
                            var iMax = parseInt(oMaxLength[x][2]("maxlength"));
                            if (field.value.length > iMax) {
                                if (i == 0) {
                                    focusField = field;
                                }
                                fields[i++] = oMaxLength[x][1];
                                isValid = false;
                            }
                        }
                    }
                    if (fields.length > 0) {
                       focusField.focus();
                       alert(fields.join('\n'));
                    }
                    return isValid;
                }]]>
             </javascript>
     
          </validator>

  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
    Tu n'as pas une bonne version du validator-rules.xml.

    Si tu regardes la méthode validateMaxLength de la classe FieldChecks, elle attend en paramètre un objet de type ActionMessages et non plus un objet de type ActionErrors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static boolean validateMaxLength(Object bean, ValidatorAction va, Field field, ActionMessages errors, Validator validator, HttpServletRequest request)
    Donc, soit tu récupères une version du validator-rules.xml qui correspond à la Struts 1.3.9 (en 1.3.8, il se trouve sous src\core\src\main\resources\org\apache\struts\validator), ce qui pour moi est la solution la plus propre, soit tu modifies ActionErrors en ActionMessages dans tout le fichier :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <validator name="maxlength"
                classname="org.apache.struts.validator.FieldChecks"
                   method="validateMaxLength"
             methodParams="java.lang.Object,
                           org.apache.commons.validator.ValidatorAction,
                           org.apache.commons.validator.Field,
                           org.apache.struts.action.ActionMessages,
                           javax.servlet.http.HttpServletRequest"
                  depends=""
                      msg="errors.maxlength">

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

Discussions similaires

  1. [Struts / Spring] Mon formulaire ne se valide pas
    Par yous18 dans le forum Struts 1
    Réponses: 3
    Dernier message: 02/08/2011, 19h14
  2. [Struts-Validator] Gestion d'erreurs
    Par sylvain_neus dans le forum Struts 1
    Réponses: 14
    Dernier message: 09/04/2004, 15h15
  3. Réponses: 9
    Dernier message: 24/03/2004, 12h15
  4. [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