posts - 431,  comments - 344,  trackbacks - 0

Grails的验证功能是建立在Spring's Validator API和数据绑定之上的,但Grails在此特性和约束机制的基础上又提供了统一的定义验证约束的方法。
在一个领域类中,约束constraints被定义在constraints属性的代码块中:

class User {

...

    static constraints = {

userName(size:5..15, blank:false, unique:true)

password(size:5..15, blank:false)

email(email:true, blank:false)

age(min:18, nullable:false)

}

}

这样在你每次保存一个对象的时候都回去调用validate方法来验证.

当然你可以在任何实例上调用其validate方法去验证领域类.

def user = new User(params)

if(user.validate()) {

// do something with user

} else {

    user.errors.allErrors.each {

println it

}

}

如果你在注册的时候, 比如要输入两次密码, 这时候想把错误消息也放入领域类的errors属性里面, 由于领域类的 errors属性是Spring的Errors接口实例,

Errors接口提供了访问这些验证错误的方法,并且还可以取得原始的值。

具体使用的实现类是BeanPropertyBindingResult

Java.lang.Object

org.springframework.validation.AbstractErrors

org.springframework.validation.AbstractBindingResult

org.springframework.validation.AbstractPropertyBindingResult

org.springframework.validation.BeanPropertyBindingResult

每一个消息对应一个org.springframework.validation.ObjectError对象.所有可以想领域类的errors属性里面直接添加ObjectError对象就可以了.

 def error = new ObjectError('password', message(code:'pinpin.register.valid.password.notequal'))

 user.errors.addError(error)

posted on 2008-07-20 22:20 周锐 阅读(1057) 评论(0)  编辑  收藏 所属分类: Groovy&Grails

只有注册用户登录后才能发表评论。


网站导航: