Ich benutze Grails 2.2.1 und versuchen, eine verschachtelte Befehlsstruktur zu validieren. Hier ist eine vereinfachte Version meiner Befehlsobjekte:Grails validieren geschachtelten Befehl Objekt funktioniert nicht
@Validateable
class SurveyCommand {
SectionCommand useful
SectionCommand recommend
SurveyCommand() {
useful = new SectionCommand(
question: 'Did you find this useful?',
isRequired: true)
recommend = new SectionCommand(
question: 'Would you recommend to someone else?',
isRequired: false)
}
}
@Validateable
class SectionCommand {
String question
String answer
boolean isRequired
static constraints = {
answer(validator: answerNotBlank, nullable: true)
}
static answerNotBlank = { String val, SectionCommand obj ->
if(obj.isRequired) {
return val != null && !val.isEmpty()
}
}
}
Wenn ich versuche, eine Instanz von SurveyCommand
zu validieren es gibt immer true
egal die Abschnittswerte und meine benutzerdefinierten Validator in SectionCommand
(answerNotBlank
) nie aufgerufen. Aus der Grails-Dokumentation geht hervor, dass this kind of nested structure is supported (deepValidate
standardmäßig auf true gesetzt ist). Vielleicht gilt diese Regel jedoch nur für Domänenobjekte und nicht für Befehlsobjekte? Oder verpasse ich hier gerade etwas?
nett! Funktioniert großartig, aber gibt es einen TROCKENEN Weg, anstatt eine Einschränkung für jede Untereigenschaft explizit zu definieren? –