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

API standards et tierces Java Discussion :

Commons validator sur un exemple tout simple?


Sujet :

API standards et tierces Java

  1. #1
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut Commons validator sur un exemple tout simple?
    Salut,

    Je souhaite tester l'api Commons Validator sur un exemple tout simple.

    J'ai une classe Name qui contient deux attributs, firstName et lastName :

    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
    public class Name {
     
        private String firstName;
        private String lastName;
     
        public String getFirstName() {
            return firstName;
        }
     
        public void setFirstName(String firstName) {
            this.firstName = firstName;
        }
     
        public String getLastName() {
            return lastName;
        }
     
        public void setLastName(String lastName) {
            this.lastName = lastName;
        }
     
    }
    (vous voyez, on ne peut pas plus simple)

    J'ai récupéré (et adapté) un bout de code qui effectue la validation, à partir de la description dans validation.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
    import java.io.InputStream;
    import java.util.Map;
     
    import org.apache.commons.validator.Validator;
    import org.apache.commons.validator.ValidatorResources;
    import org.apache.commons.validator.ValidatorResults;
     
    public class Test {
     
        public static void main(String[] args) throws Exception {
            InputStream in = Test.class.getResourceAsStream("/validation.xml");
     
            // Create an instance of ValidatorResources to
            // initialize from an xml file.
            ValidatorResources resources = new ValidatorResources(in);
     
            // Create bean to run test on.
            Name name = new Name();
     
            // Construct validator based on the loaded resources
            // and the form key
            Validator validator = new Validator(resources, "nameForm");
            // add the name bean to the validator as a resource
            // for the validations to be performed on.
            validator.setParameter(Validator.BEAN_PARAM, name);
     
            // Get results of the validation.
            ValidatorResults results = validator.validate();
     
            if (results.getValidatorResult("firstName") == null) {
                // no error
                System.out.println("ok");
            } else {
                // TODO
            }
     
        }
     
    }
    Le problème maintenant: le fichier 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
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE form-validation PUBLIC 
        "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1//EN" 
        "http://jakarta.apache.org/commons/dtds/validator_1_1.dtd">
     
    <form-validation>
        <formset>
           <form name="nameForm">
              <field property="firstName" depends="required">
                 <arg0 key="nameForm.firstname.displayname"/>
              </field>
              <field property="lastName" depends="required">
                 <arg0 key="nameForm.lastname.displayname"/>
              </field>
           </form>
        </formset>
    </form-validation>
    Je veux juste (vu que c'est pour un test) tester si firstName et lastName ont bien une valeur (donc depends="required").

    arg0, je ne sais pas à quoi il fait référence, et dans mon test je ne veux pas utiliser l'internationalisation.

    Voici ce qu'il se passe quand j'exécute Test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Exception in thread "main" org.apache.commons.validator.ValidatorException: No ValidatorAction named required found for field firstName
    	at org.apache.commons.validator.Field.handleMissingAction(Field.java:897)
    	at org.apache.commons.validator.Field.validate(Field.java:873)
    	at org.apache.commons.validator.Form.validate(Form.java:288)
    	at org.apache.commons.validator.Validator.validate(Validator.java:351)
    	at Test.main(Test.java:28)
    Pouvez-vous m'aider à corriger mon .xml pour qu'il fasse ce que je veux svp?

    J'ai trouvé pas mal d'exemples sur internet, mais c'est toujours combiné à plein de choses Struts... Je voudrais vraiment un exemple minimal pour voir comment fonctionne cet outil.

    Merci d'avance.

    ®om

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,
    Il ne te manquerait pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <global>
           <validator name="required"
              classname="org.apache.commons.validator.TestValidator"
              method="validateRequired"
              methodParams="java.lang.Object, org.apache.commons.validator.Field"/>
        </global>
    au début de ton XML comme indiqué ici ?

    A plus

Discussions similaires

  1. [MySQL] Erreur sur une requête toute simple
    Par JeromeC# dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 06/04/2011, 22h15
  2. java.lang.NoClassDefFoundError sur un exemple tout simple
    Par Invité dans le forum Services Web
    Réponses: 2
    Dernier message: 23/02/2009, 10h36
  3. Pb sur un script tout simple !
    Par ladybird dans le forum Langage
    Réponses: 12
    Dernier message: 06/12/2006, 21h05
  4. [VB NET2002] Créer un setup valide sur tout type de machine ?
    Par magic8392 dans le forum Installation, Déploiement et Sécurité
    Réponses: 5
    Dernier message: 29/04/2006, 09h44
  5. [RegEx] Aide sur une expression régulière toute simple
    Par tchoumak dans le forum Langage
    Réponses: 3
    Dernier message: 29/11/2005, 15h46

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