Grails的领域类验证-constraints

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…….自定义验证

  1. blank

    作用:
    定义一个字段是否能够为空

    用法:

    class User {
    static constraints = {
    name(blank:false)
    email(blank: true)
    age(blank: false)
    }
    String name
    String email
    Integer age
    }

  2. creditCard

    作用:
    验证是否为有效的信用卡账号

    用法:

    class User {
    static constraints = {
    cardNumber(creditCard: true)
    }
    String cardNumber
    }

  3. email

    作用:
    验证是否为有效的邮箱帐号

    用法:

    class User {
    static constraints = {
    email(email: true)
    }

    String email  
    

    }

  4. inList

    作用:
    验证是否是指定的数组中的选项,在页面的显示为Drop-down box,选项为inList中指定的value

    用法:

    class User {
    static constraints = {
    list(inList: [‘aaa’,’bbb’,’ccc’])
    }

    String list  
    

    }

  5. matches

    作用:
    验证一个字符串是否符合某个正则表达式

    用法:

    class User {
    static constraints = {
    name(matches:”[a-zA-Z]+”)
    }

    String name  
    

    }

  6. max

    作用:
    设定一个实现了java.lang.Comparable接口的类行做为自己的最大值类型,同时,该类型必须也是自身的类型

    用法:

    class User {
    static constraints = {
    age(max:100)
    date(max:new Date())
    }

    Integer age  
    Date date  
    

    }

  7. maxSize

    作用:
    设置一个集合或者字段的最大值

    用法:

    class User {
    static constraints = {
    people(maxSize:100)
    }

    Integer people  
    

    }

  8. min

    作用:
    功能和max相反,设置和max一样

    用法:

    class User {
    static constraints = {
    age(min:18)
    date(min:new Date())
    }

    Integer age  
    Date date  
    

    }

  9. minSize

    作用:
    功能和maxSize相反,设置和maxSize一样

    用法:

    class User {
    static constraints = {
    people(minSize:10)
    }

    Integer people  
    

    }

  10. notEqual

    作用:
    验证输入的用户名不能和指定的用户名一致

    用法:

    class User {
    static constraints = {
    name(notEqual: “zhangsan”)
    }

    String name  
    

    }

  11. nullable

    作用: 验证是否可以为null,注意空和null的区别

    用法:

    class User {
    static constraints = {
    name(nullable: false)
    }

    String name  
    

    }

  12. range

    作用:
    设置一个字段的范围

    用法:

    class User {
    static constraints = {
    age(range:18..100)
    }

    Integer age  
    

    }

  13. scale

    作用:
    版本0.4才开始出现的约束属性。
    根据设定的scale数值,自动把浮点型数字小数点后的位数调整为设定的值。
    适用于以下数值类型:java.lang.Float, Java.lang.Double, Java.math.BigDecimal(及其子类)。

    用法:

    class User {
    static constraints = {
    price(scale: 2)
    }

    Double price  
    

    }

  14. size

    作用:
    规定一个数值,集合或者字符串长度的大小。
    在版本0.5中不被建议用在数字类型的属性上,改用range。
    如果blank设为true或者nullable设为true,不能使用这个约束属性。

    用法:

    class User {
    static constraints = {
    name(size:5..10)
    }

    String name  
    

    }

  15. unique

    作用:
    设置属性是否必须为唯一

    用法:

    class User {
    static constraints = {
    name(unique: true)
    }

    String name  
    

    }

  16. url

    作用:
    如果属性为一个URL地址,则设为true。

    用法:

    class User {
    static constraints = {
    url(url: true)
    }

    String url  
    

    }

  17. 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编码工具转换成相应编码格式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值