Grails 1.1 验证 - 验证阶段

Grails中本质上有2个验证阶段,第一个阶段是 data binding ,当你把请求参数绑定到实体上发生,例如:def user = new User(params)这时,因为类型转换(如String转换为Dates),在errors属性可能已经出现错误。

你可以检查它们并通过使用ErrorsAPI获得原始输入值:if(user.hasErrors()) { if(user.errors.hasFieldErrors("login")) { println user.errors.getFieldError("login").rejectedValue } }验证的第2阶段发生在当你调用 validate 或 save时。

这时,Grails将会验证你在constraints 定义的约束值。

比如,默认的持久方法save会在执行之前调用 validate 。

因此,允许你像下面这样编码:if(user.save()) { return user } else { user.errors.allErrors.each { println it } }