Grails的领域类验证(约束属性),也就是domain类的constraints闭包,用作各个字段的验证校验,Grails共提供了16个输入校验和一个自定义校验。
constraints
blank………..空
creditCard……信用卡格式
email………..email格式
inList……….指定范围
matches………正则限制
max………….最大值(实现Comparable接口的类型)
maxSize………集合的最大值
min………….最小值(实现Comparable接口的类型)
minSize………集合的最小值
notEqual……..排除(不能与设定的值相同)
nullable……..是否为空
range………..限定范围
scale………..小数位数
size…………限定集合或字符串长度
unique……….唯一性
url………….URL格式
validator…….自定义验证
blank
作用:
定义一个字段是否能够为空用法:
class User {
static constraints = {
name(blank:false)
email(blank: true)
age(blank: false)
}
String name
String email
Integer age
}creditCard
作用:
验证是否为有效的信用卡账号用法:
class User {
static constraints = {
cardNumber(creditCard: true)
}
String cardNumber
}email
作用:
验证是否为有效的邮箱帐号用法:
class User {
static constraints = {
email(email: true)
}String email
}
inList
作用:
验证是否是指定的数组中的选项,在页面的显示为Drop-down box,选项为inList中指定的value用法:
class User {
static constraints = {
list(inList: [‘aaa’,’bbb’,’ccc’])
}String list
}
matches
作用:
验证一个字符串是否符合某个正则表达式用法:
class User {
static constraints = {
name(matches:”[a-zA-Z]+”)
}String name
}
max
作用:
设定一个实现了java.lang.Comparable接口的类行做为自己的最大值类型,同时,该类型必须也是自身的类型用法:
class User {
static constraints = {
age(max:100)
date(max:new Date())
}Integer age Date date
}
maxSize
作用:
设置一个集合或者字段的最大值用法:
class User {
static constraints = {
people(maxSize:100)
}Integer people
}
min
作用:
功能和max相反,设置和max一样用法:
class User {
static constraints = {
age(min:18)
date(min:new Date())
}Integer age Date date
}
minSize
作用:
功能和maxSize相反,设置和maxSize一样用法:
class User {
static constraints = {
people(minSize:10)
}Integer people
}
notEqual
作用:
验证输入的用户名不能和指定的用户名一致用法:
class User {
static constraints = {
name(notEqual: “zhangsan”)
}String name
}
nullable
作用: 验证是否可以为null,注意空和null的区别
用法:
class User {
static constraints = {
name(nullable: false)
}String name
}
range
作用:
设置一个字段的范围用法:
class User {
static constraints = {
age(range:18..100)
}Integer age
}
scale
作用:
版本0.4才开始出现的约束属性。
根据设定的scale数值,自动把浮点型数字小数点后的位数调整为设定的值。
适用于以下数值类型:java.lang.Float, Java.lang.Double, Java.math.BigDecimal(及其子类)。用法:
class User {
static constraints = {
price(scale: 2)
}Double price
}
size
作用:
规定一个数值,集合或者字符串长度的大小。
在版本0.5中不被建议用在数字类型的属性上,改用range。
如果blank设为true或者nullable设为true,不能使用这个约束属性。用法:
class User {
static constraints = {
name(size:5..10)
}String name
}
unique
作用:
设置属性是否必须为唯一用法:
class User {
static constraints = {
name(unique: true)
}String name
}
url
作用:
如果属性为一个URL地址,则设为true。用法:
class User {
static constraints = {
url(url: true)
}String url
}
validator
作用:
在闭包里设定自定义的验证用法:
class User {
static constraints = {
repassword(validator: {val, obj ->
if (obj.password != val) {
return “Repassword is not right”
}
})
}String password String repassword
}
合理使用constraints后,生成的脚手架会自动进行验证 验证信息的内容,在i18n目录下,可以找到相应的语言进行更改,别忘使用java的native2ascii编码工具转换成相应编码格式