Spécification JSR-303

Explication du package javax.validation

Ce site ne sera plus alimenté de contenu après août 2014. Tous les nouveaux articles seront redigés pour www.waitingforcode.com

Plusieurs validateurs de notre application sont issus du package javax.validation. Qu'est-ce qui se cache derrière lui ?

La norme JSR-303

Derrière ce package se cache l'implémentation par défaut de la spécification JSR-303, spécifié par un groupe d'experts et accepté en 2009 en tant qu'une partie de la spécification du Java EE 6.

Grâce à cette standardisation on sait quels éléments doit contenir une nouvelle annotation utilisée pour validation (annotation nommée une contrainte) :
- message : message qui devrait être affiché dans le cas d'une valeur incorrecte. Il est préférable de déterminer le code du message à retrouver plutôt que le message en dur (même pour la valeur par défaut).
- groups : les groupes auxquels s'applique la validation. Si aucun group n'est spécifié, on considère que l'on valide le groupe par défaut qui est Default
- payload : les méta-données associées à la contrainte. On peut par exemple déterminer la sévérité de l'erreur attachée à la contrainte
- des paramètres supplémentaires : comme dans notre exemple IsEqualLocally, on a précisé des éléments supplémentaires utilisés par le validateur. Il s'agit des noms des champs dont les valeurs doivent être comparées.

Dans l'article créer une annotaton et un validateur dans Spring, on a décrit la méthode de fonctionnement de l'implémentation de l'interface ConstraintValidator. C'est pourquoi on ne va pas revenir là-dessus ici. Il faut seulement garder en tête qu'elle est un élément central de la validation. C'est elle qui décide si les valeurs passées peuvent être admises par l'application ou pas. La contrainte est là juste pour marquer les éléments à valider.

Pour découvrir cette partie plus en détail, vous pouvez consulter l'article consacré à la validation JSR-303.

Bartosz KONIECZNY Validation

Une question ? Une remarque ?

*

*

Un conseil Symfony2

Comment personnaliser la page 404 ?

Pour personnaliser la page 404 sous Symfony2 il faut surcharger le contrôleur par défaut. On peut l'achever en déterminant "exception_controller" dans le fichier de configuration. Supposons que nous utilisons le bundle ExceptionsErrorBundle pour gérer toute sorte des exceptions. Un des contrôleurs (NotFoundController) s'occupe de manipulations liées aux erreurs 404. Pour pouvoir utiliser ce contrôleur pour les erreurs type 404, il faut le déclarer dans le fichier de configuration (config.yml, config_dev.yml - en fonction de l'environnement) :

twig: 
    exception_controller: "ExceptionsErrorBundle :NotFound:handleException"