Je reçois uniquement le message du validateur par défaut. Qu'est-ce que je fais mal?Renvoyer l'erreur du validateur personnalisé Grails
class Questao {
static hasMany = [alternativas:Alternativa]
static constraints = {
alternativas (validator: {val, obj ->
if(val.size() < 2)
return ['validator.message'] //custom message
})
}
}
/i18n
questao.alternativas.validator.message = "must be greater than two"
default.invalid.validator.message= Property [{0}] of class [{1}] with value [{2}] does not pass custom validation
Merci
Ce n'est pas documenté parce que ce n'est pas vrai. –
Désolé, je me suis trompé à ce sujet. - Cependant, le retour d'une chaîne à partir d'un 'validator' n'est pas du tout documenté ni dans le Grails * User Guide * ni dans le * Wiki * (dans ce dernier, pas au moins dans un endroit visible). - Ainsi, il est fort probable que l'on tire des conclusions erronées lorsque les cas de tests simples sur cette question échouent. – robbbert
Il est documenté, bien que: http://grails.org/doc/latest/ref/Constraints/validator.html - Si vous regardez dans la liste en bas, il dit 'La fermeture peut retourner ... une chaîne à Indiquez le code d'erreur à ajouter à "classname.propertName". ... 'La partie la plus difficile de tout cela est de comprendre comment la chaîne retournée est mappée à une clé dans' messages.properties'; Une fois que vous avez compris cela, ce n'est pas trop compliqué. –