Вы можете использовать Плагин пользовательских ограничений Grails для управления реализацией вашей проверки.Затем вы можете вызвать собственное ограничение, как и предопределенные ограничения Grails:
package support.reminder.web
import org.codehaus.groovy.grails.commons.ConfigurationHolder as CH
class Person {
String firstName
String lastName
String email
Date lastDutyDate
static constraints = {
firstName(blank: false)
lastName(blank: false)
email(blank: false, email: true)
lastDutyDate(nullable: true)
id(maxRows: CH.config.support.reminder.web.person.max)
}
}
В качестве альтернативы, если вы не хотите полагаться на сторонние плагины, вы можете реализовать логику своего пользовательского валидатора в методе Service.но позвоните из пользовательского валидатора в домене:
package support.reminder.web
import org.codehaus.groovy.grails.commons.ConfigurationHolder as CH
class Person {
def validationService
String firstName
String lastName
String email
Date lastDutyDate
static constraints = {
firstName(blank: false)
lastName(blank: false)
email(blank: false, email: true)
lastDutyDate(nullable: true)
id (validator: {val ->
validationService.validateMaxRows(val, CH.config.support.reminder.web.person.max)
}
}
}