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] Validation d'un Integer


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    F2S
    F2S est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 139
    Par défaut [Validator] Validation d'un Integer
    Bonsoir à tous...

    je veux utiliser la validation des mes formulaire Struts en utlisant le plugin ValidatorPlugIn

    donc j'ai déclaré le plugin dans mon fichier de conf :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     	 <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
            <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,
                                                      /WEB-INF/validation.xml"/>
     	 </plug-in>
    j'ai créer mes deux fichier .xml dans web-inf :

    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
      <validator name="integer"
                classname="org.apache.struts.validator.FieldChecks"
                   method="validateInteger"
             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.integer"
           jsFunctionName="IntegerValidations">
     
             <javascript><![CDATA[
                function validateInteger(form) {
                    var bValid = true;
                    var focusField = null;
                    var i = 0;
                    var fields = new Array();
                    oInteger = new IntegerValidations();
                    for (x in oInteger) {
                    	var field = form[oInteger[x][0]];
     
                        if (field.type == 'text' ||
                            field.type == 'textarea' ||
                            field.type == 'select-one' ||
                            field.type == 'radio') {
     
                            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 (value.length > 0) {
     
                                if (!isAllDigits(value)) {
                                    bValid = false;
                                } else {
    	                            var iValue = parseInt(value);
    	                            if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) {
    	                                if (i == 0) {
    	                                    focusField = field;
    	                                }
    	                                fields[i++] = oInteger[x][1];
    	                                bValid = false;
    	                           }
                               }
                           }
                        }
                    }
                    if (fields.length > 0) {
                       focusField.focus();
                       alert(fields.join('\n'));
                    }
                    return bValid;
                }
     
                function isAllDigits(argvalue) {
                    argvalue = argvalue.toString();
                    var validChars = "0123456789";
                    var startFrom = 0;
                    if (argvalue.substring(0, 2) == "0x") {
                       validChars = "0123456789abcdefABCDEF";
                       startFrom = 2;
                    } else if (argvalue.charAt(0) == "0") {
                       validChars = "01234567";
                       startFrom = 1;
                    }
                    for (var n = 0; n < argvalue.length; n++) {
                        if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false;
                    }
                    return true;
                }]]>
             </javascript>
     
          </validator>

    validation.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <form name="searchFullForm">
    	<field property="productList" depends="integer">
                   <arg0 key="prompt.productList"/>
                </field>
    </form>
    et dans mon formulaire j'ai bien :

    private Integer productList;

    avec ses get et set...

    mais voilà ça ne fonctionne pas...
    il ne me valide pas mon formulaire...

  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
    Ton ActionForm de name searchFullForm hérite bien de ValidatorForm ?
    Tu as bien mis l'attribut validate à true dans le mapping de l'Action ?

    Pourrais-tu également préciser quelle version de Struts tu utilises ?

    parce que il y a une référence à la classe ActionErrors dans le fichier validator-rules.xml.
    Si tu utilises une version 1.2 ou 1.3 de Struts, il faut remplacer org.apache.struts.action.ActionErrors par org.apache.struts.action.ActionMessages.
    Le plus simple pour ne pas avoir de problème, c'est de prendre le validator-rules.xml livré avec la version de Struts que tu utilises.

  3. #3
    F2S
    F2S est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 139
    Par défaut
    Salut,

    En faite, la validation de ce formulaire existait déja avant, je voulais simplement ajouter un champ supplémentaire.

    la validation fonctionne bien pour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <field property="priceMax" depends="float">
           <arg0 key="prompt.priceMax"/>
    </field>
    <field property="priceMin" depends="float">
           <arg0 key="prompt.priceMin"/>
    </field>

    moi je veux ajouter le champ à la validation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <field property="productList" depends="integer">
             <arg0 key="prompt.productList"/>
    </field>
    dans ma form il est déclaré comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
        private Integer _productList;
     
        public Integer getProductList() {
            return _productList;
        }
        public void setProductList(Integer list) {
            _productList = list;
        }

  4. #4
    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 précisé la version de Struts que tu utilises ?

  5. #5
    F2S
    F2S est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 139
    Par défaut
    Oui c'est vrai dsl, j'utilise la version 1.1 de struts...

    mais si cette validation de formulaire fonctionnait déja avant, mon soucis ne doit pas venir d'un soucis de conf ( org.apache.struts.action.ActionErrors) ???

  6. #6
    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
    Si tu es en 1.1, tu n'as effectivement rien à modifier.

    Ce qui me gêne, c'est le nom de la propriété dans l'ActionForm, soit _productList.

    Pourrais-tu la remplacer par productList ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        private Integer productList;
     
        public Integer getProductList() {
            return productList;
        }
        public void setProductList(Integer list) {
            productList = list;
        }
    Sinon, que contient exactement productList ?
    parce que je trouve bizarre d'appeler productList une propriété de type Integer.

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

Discussions similaires

  1. [STRUTS][VALIDATOR] Validation de dates
    Par SEMPERE Benjamin dans le forum Struts 1
    Réponses: 16
    Dernier message: 09/09/2005, 11h43
  2. [Validator] Validation javascript du type long
    Par Jaxofun dans le forum Struts 1
    Réponses: 6
    Dernier message: 30/06/2005, 09h34
  3. Réponses: 3
    Dernier message: 15/03/2005, 12h22
  4. [STRUTS][Validation] - Validation dans un execute
    Par SEMPERE Benjamin dans le forum Struts 1
    Réponses: 8
    Dernier message: 07/12/2004, 10h55
  5. [ Struts ][ Validator ]validation côté serveur
    Par tiSioux dans le forum Struts 1
    Réponses: 4
    Dernier message: 29/06/2004, 09h25

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