vous pouvez écrire votre propre validateur personnalisé.
quelque chose comme
selfInspecting(validator: {val, obj -> /*test selfInspecting here*/})
EDIT - en réponse à l'autre réponse - vous pouvez gérer cela sur la forme, mais vous devez également gérer sur le serveur.
AUTRE EDIT - Il a été suggéré dans un commentaire que vous souhaitiez valider l'un des deux champs de votre classe Domain. Ceci est également facilement accompli avec un validateur personnalisé. Avec la signature ci-dessus pour la fermeture du validateur personnalisé, val est la valeur selfInspecting, et obj est l'instance de l'objet du domaine. Donc, vous pourriez avoir
{ val, obj ->
if (val == null) return false // if you want to ensure selfInspecting is not null
else return true
... or ...
// if you want to check that at least 1 of two fields is not null
def oneOrTheOther = false
if (obj.field1 != null || obj.field2 != null)
oneOrTheOther = true
return oneOrTheOther
}
En outre, les cases à cocher représentent plusieurs valeurs booléennes. Par votre exemple, je m'attendrais seulement à voir une case à cocher unique ou un groupe de radio avec des options oui/non. Vous pouvez également définir selfInspecting = true | false dans votre domaine afin qu'il ait une valeur par défaut autre que null quoi qu'il arrive. Ou utilisez le booléen primitif dont la valeur par défaut est false. – Gregg
Je veux utiliser des boutons radio, mais je ne veux pas en présélectionner un, car les utilisateurs pourraient accidentellement accepter ma présélection. – deamon