grails constraints解析(约束解析)

   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]

你可能感兴趣的:(grails constraints解析(约束解析))