Why make donate
google analytics

Validateurs utilisés

1 Présentation

On retrouve dans ce document, l'ensemble des validateurs disponibles.

Pour chaque validateur, on donne sa définition, son fonctionnement et un exemple d'utilisation.

2 Validateurs de XWorks

2.1 validateur required

Définition
 <validator name="required"
            class="com.opensymphony.xwork2.validator.validators.RequiredFieldValidator"/>

Fonctionnement

Pour vérifier qu'une propriété n'est pas nulle.

Exemple
 <field name="observateur">
     <field-validator type="required">
         <message>validator.maree.required.observateur</message>
     </field-validator>
 </field>

2.2 validateur requiredstring

Définition
 <validator name="requiredstring"
            class="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"/>

Fonctionnement

Pour vérifier qu'une propriété de type chaîne de caractère n'est pas nulle et non vide.

On peut de plus demander avec le paramètre trim de supprimer toutes les caractères d'espace en début et fin de chaîne.

Exemple
 <field name="nom">
     <field-validator type="requiredstring">
         <message>validator.observateur.required.nom</message>
     </field-validator>
 </field>

2.3 validateur int

Définition
 <validator name="int"
            class="com.opensymphony.xwork2.validator.validators.IntRangeFieldValidator"/>

Fonctionnement

Pour valider une propriété de type entière.

On peut fournir une borne minimale (min) et/ou une borne maximale (max).

Exemple
 <field name="value">
     <field-validator type="int" short-circuit="true">
         <param name="min">0</param>
         <param name="max">500</param>
         <message>validator.bound.value##${min}##${max}</message>
     </field-validator>
 </field>

2.4 validateur long

Définition
 <validator name="long"
            class="com.opensymphony.xwork2.validator.validators.LongRangeFieldValidator"/>

Fonctionnement

Pour valider une propriété de type long.

On peut fournir une borne minimale (min) et/ou une borne maximale (max).

Exemple
 <field name="value">
     <field-validator type="long" short-circuit="true">
         <param name="min">0</param>
         <param name="max">500</param>
         <message>validator.bound.value##${min}##${max}</message>
     </field-validator>
 </field>

2.5 validateur short

Définition
 <validator name="short"
            class="com.opensymphony.xwork2.validator.validators.ShortRangeFieldValidator"/>

Fonctionnement

Pour valider une propriété de tye short.

On peut fournir une borne minimale (min) et/ou une borne maximale (max).

Exemple
 <field name="value">
     <field-validator type="short" short-circuit="true">
         <param name="min">0</param>
         <param name="max">500</param>
         <message>validator.bound.value##${min}##${max}</message>
     </field-validator>
 </field>

2.6 validateur double

Définition
 <validator name="double"
            class="com.opensymphony.xwork2.validator.validators.DoubleRangeFieldValidator"/>

Fonctionnement

Pour valider une propriété de tye entier décimal.

On peut fournir une borne minimale (minInclusive ou minExclusive) et/ou une borne maximale (maxInclusive ou maxExclusive).

Exemple
 <field name="value">
     <field-validator type="double">
         <param name="minInclusive">12.0</param>
         <param name="maxInclusive">35.0</param>
         <message>error##${minInclusive}##${maxInclusive}</message>
     </field-validator>
 </field>

2.7 validateur date

Définition
 <validator name="date"
            class="com.opensymphony.xwork2.validator.validators.DateRangeFieldValidator"/>

Fonctionnement

Pour valider une propriété de tye Date.

On peut fournir une borne minimale (min) et/ou une borne maximale (max).

Exemple
 <field name="value">
     <field-validator type="date" short-circuit="true">
         <param name="min">10/10/2007</param>
         <param name="max">10/10/20012</param>
         <message>validator.bound.value##${min}##${max}</message>
     </field-validator>
 </field>

2.8 validateur fieldexpression

Définition
 <validator name="fieldexpression"
            class="com.opensymphony.xwork2.validator.validators.FieldExpressionValidator"/>

Fonctionnement

Pour valider une expression sur une propréiété donnée.

On doit fournir l'expression de type ognl à appliquer.

Exemple
 <field name="dateFin">
     <field-validator type="fieldexpression">
         <param name="expression">
             <![CDATA[dateFin == null || dateFin.after(dateDebut) ]]>
         </param>
         <message>validator.maree.dateFin.after.dateDebut</message>
     </field-validator>
 </field>

2.9 validateur email

Définition
 <validator name="email"
            class="com.opensymphony.xwork2.validator.validators.EmailValidator"/>

Fonctionnement

Pour valider un courriel à partir d'une chaîne de caractères.

Exemple
 <field name="email">
     <field-validator type="email">
         <message>validator.invalid.email##${email}</message>
     </field-validator>
 </field>

2.10 validateur url

Définition
 <validator name="url"
            class="com.opensymphony.xwork2.validator.validators.URLValidator"/>

Fonctionnement

Pour valider une propriété de type URL.

Exemple
 <field name="value">
     <field-validator type="url">
         <message>validator.invalid.url##${url}</message>
     </field-validator>
 </field>

2.11 validateur stringlength

Définition
 <validator name="stringlength"
            class="com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator"/>

Fonctionnement

Pour valider la taille d'une propriété de type chaîne de caractères.

On peut fournir une borne minimale (minLength) ou une borne maximale (maxLength).

On peut de plus avec le drapeau trim supprimer les caractères d'espace en début et fin de chaîne.

Exemple
 <field name="value">
     <field-validator type="stringlength">
         <param name="min">10</param>
         <message>validator.stringlength.min##${min}</message>
     </field-validator>
 </field>

2.12 validateur regex

Définition
 <validator name="regex"
            class="com.opensymphony.xwork2.validator.validators.RegexFieldValidator"/>

Fonctionnement

Pour valider une expression régulière sur une propriété de type chaîne de caractères.

On doit fournir l'expression regex à utiliser.

Exemple
 <field name="value">
     <field-validator type="regex">
         <param name="expression">a.*</param>
         <message>validator.begin.by.a##${value}</message>
     </field-validator>
 </field>

2.13 validateur visitor

Définition
 <validator name="visitor"
            class="com.opensymphony.xwork2.validator.validators.VisitorFieldValidator"/>

Fonctionnement

Pour lancer la validation de l'objet via son context.

Si le paramètres appendPrefix est renseigné, on ajoutera ce prefix avant de lancer le validateur externe.

Exemple
 <field name="value">
     <field-validator type="visitor">
         <param name="context">error</param>
         <param name="appendPrefix">true</param>
         <message>validator.unvalid.value##${value}</message>
     </field-validator>
 </field>

2.14 validateur conditionalvisitor

Définition
 <validator name="conditionalvisitor"
            class="com.opensymphony.xwork2.validator.validators.ConditionalVisitorFieldValidator"/>

Fonctionnement

Pour lancer la validation d'un objet via son context si une expression est vérifiée.

On doit fournir le context et l'expression ognl à utiliser.

Exemple
 <field name="value">
     <field-validator type="conditionalvisitor">
         <param name="context">error</param>
         <param name="expression">value != null</param>
         <param name="appendPrefix">true</param>
         <message>validator.unvalid.value##${value}</message>
     </field-validator>
 </field>

3 Validateurs de JAXX

3.1 validateur fieldexpressionwithparams

Définition
 <validator name="fieldexpressionwithparams"
            class="jaxx.runtime.validator.field.FieldExpressionWithParamsValidator"/>

Fonctionnement

Surcharge le validateur filedexpression en permettant d'injecter des paramètres utilisables dansl'expression à évaluer.

On peut actuellement ajouter des paramètres boolean - int - double et string.

Les paramètres sont nommés booleanParams, intParams,...

ils sont de la forme :

(argName:argValue|)*argName:argValue

Ces arguments sont ensuites disponibles sous la forme :

booleans.argName, ints.argName,...

Exemple
 <field name="lochSoir">
     <field-validator type="fieldexpressionwithparams">
         <param name="intParams">maxGap:400</param>
         <param name="expression"><![CDATA[lochMatin + ints.maxGap <= lochSoir]]></param>
         <message>validator.route.invalid.lochSoir.maximum##${ints.maxGap}</message>
     </field-validator>
 </field>

3.2 validateur collectionFieldExpression

Définition
 <validator name="collectionFieldExpression"
            class="jaxx.runtime.validator.field.CollectionFieldExpressionValidator"/>

Fonctionnement

Etends le validateur fieldexpression pour valider une collection.

Exemple

<field name="lochSoir">

<field-validator type="fieldexpressionwithparams">

<param name="intParams">maxGap:400</param> <param name="expression"><![CDATA[lochMatin + ints.maxGap <= lochSoir]]></param> <message>validator.route.invalid.lochSoir.maximum##${ints.maxGap}</message> </field-validator>

</field>

3.3 validateur collectionUniqueKey

Définition
 <validator name="collectionUniqueKey"
            class="jaxx.runtime.validator.field.CollectionUniqueKeyValidator"/>

Fonctionnement

Pour vérifier qu'un objet n'est pas déjà présent dans une collection d'objets.

Le paramètre keys définit la liste des propriétés définissant la clef.

Le paramètre againstProperty définit l'objet à vérifier.

Le paramètre againstIndexExpression définit la propriété qui définit la position de l'objet à vérifier.

Exemple
 <field name="data">
     <field-validator type="collectionUniqueKey">
         <param name="keys">espece,longueur</param>
         <param name="againstProperty">editBean</param>
         <param name="againstIndexExpression">editingRow</param>
         <message>validator.tailleThon.uniqueKey</message>
     </field-validator>
 </field>

3.4 validateur requiredFile

Définition
 <validator name="requiredFile"
            class="jaxx.runtime.validator.field.RequiredFileFieldValidator"/>

Fonctionnement
Exemple

TODO

3.5 validateur existingFile

Définition
 <validator name="existingFile"
            class="jaxx.runtime.validator.field.ExistingFileFieldValidator"/>

Fonctionnement
Exemple

TODO

3.6 validateur notExistingFile

Définition
 <validator name="notExistingFile"
            class="jaxx.runtime.validator.field.NotExistingFileFieldValidator"/>

Fonctionnement
Exemple

TODO

3.7 validateur existingDirectory

Définition
 <validator name="existingDirectory"
            class="jaxx.runtime.validator.field.ExistingDirectoryFieldValidator"/>

Fonctionnement
Exemple

TODO

3.8 validateur notExistingDirectory

Définition
 <validator name="notExistingDirectory"
            class="jaxx.runtime.validator.field.NotExistingDirectoryFieldValidator"/>

Fonctionnement
Exemple

TODO

4 Validateurs spécifiques d'ObServe

4.1 validateur openable

Définition
 <validator name="openable"
            class="fr.ird.observe.validation.OpenableFieldValidator"/>

Fonctionnement

Pour vérifier que la propriété de type Openable n'est pas ouverte.

Si la propriété est de type collection, on vérifie alors qu'aucun des éléments de la collection (qui est de type Openable) n'est ouvert.

On peut ajouter dans les message le paramètre openValueAsString qui est la valeur décorée de l'objet qui est ouvert.

Exemple
 <field name="route">
     <field-validator type="openable">
         <message>validator.unclosed.route##${openValueAsString}</message>
     </field-validator>
 </field>

Maven JRst ReStructuredText JAXX ToPIA ArgoUML