grails constraints解析(约束解析)

本文详细介绍了如何在Grails框架中获取并解析Domain类的属性约束,包括验证规则、空白判断、可空性等,并通过实例展示了具体实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   grails中根据domain类取各个属性约束:

 

 /*******
     *constraints 解析
     *o 对象或类
     *pp 对象属性
     *返回该对象属性约束集合
     *******/
    def excconstraints(Object o,String pp){
//        println us.constraints.("password").constraints.keySet()//获取限制属性集合
        def por=[];//限制属性集合
        def excc=[:];//对象属性限制集合
        excc.put("pname",pp)
        o.constraints.(pp.toString()).constraints.keySet().each{
            por<<it;
        }
        Pattern p=Pattern.compile("(\\[)(.*?)(\\])");
            Matcher m;
        por.each{
//            println it+":"+ us.constraints.("password").getAppliedConstraint(it).toString()//获取单个限制属性的值
            def itStrV=o.constraints.(pp.toString()).getAppliedConstraint(it).toString();//获取单个限制属性的值,需要结合下面正则表达式
            if(itStrV!=null&&itStrV!=null){
               m= p.matcher(itStrV)
                if(m.find()){
                     excc.put(it,m.group(2))
                }
            }
        }
        return excc;
    }

调用方法:

excconstraints(new User(),"password") //constraints解析

excconstraints(User,"password") //constraints解析

 

返回值:

[pname:password, blank:true, nullable:false]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值