(Quick Reference)

7.2 Validating Constraints - Reference Documentation

Authors: Graeme Rocher, Peter Ledbrook, Marc Palmer, Jeff Brown, Luke Daley, Burt Beckwith

Version: null

7.2 Validating Constraints

Validation Basics

Basicos de Validacion

Call the validate method to validate a domain class instance:
Llame al metodo validate para validar la instancia de una clase de dominio:

def user = new User(params)

if (user.validate()) { // do something with user } else { user.errors.allErrors.each { println it } }

The errors property on domain classes is an instance of the Spring Errors interface. The Errors interface provides methods to navigate the validation errors and also retrieve the original values.
La propiedad errors en las clases de dominio es una instancia de la interfaz Errors de Spring. La interfaz Errors provee metodos para navegar por los errores de validacion y tambien obtener los valores originales.

Validation Phases

Fases de Validacion

Within Grails there are two phases of validation, the first one being data binding which occurs when you bind request parameters onto an instance such as:
Dentro de Grails existen dos fases de validacion, la primera siendo data binding la cual ocurre cuando se ligan los parametros de la peticion dentro de una instancia tal como:

def user = new User(params)

At this point you may already have errors in the errors property due to type conversion (such as converting Strings to Dates). You can check these and obtain the original input value using the Errors API:
En este punto puede ya haber errores en la propiedad errors por el tipo de conversion (tal como convertir cadenas en fechas). Puede checar estos y obtener el valor original que se introdujo usando la API de Errors:

if (user.hasErrors()) {
    if (user.errors.hasFieldErrors("login")) {
        println user.errors.getFieldError("login").rejectedValue
    }
}

The second phase of validation happens when you call validate or save. This is when Grails will validate the bound values againts the constraints you defined. For example, by default the save method calls validate before executing, allowing you to write code like:
La segunda fase de validacion ocurre cuando se llama a validate o save. Aqui es cuando Grails validara los valores obligados contra las constraints que usted definio. Por ejemplo, por defecto el metodo save llama a validate antes de ejecutarlo, permitiendole escribir codigo como:

if (user.save()) {
    return user
}
else {
    user.errors.allErrors.each {
        println it
    }
}