我想为属性编写一个通用自定义验证器,使其通用我需要对封闭内的字段名称进行引用,代码如下 In Config.groovy中Grails自定义验证器,获取对字段名称的引用
grails.gorm.default.constraints = {
nameShared(validator: {val, obj, errors->
Pattern p = Pattern.compile("[a-zA-Z0-9-]{1,15}")
Matcher m = p.matcher(val)
boolean b = m.matches()
if(!b)
errors.rejectValue('name', "${obj.class}.name.invalid", "Name is invalid")
})
在我的领域类
class Student{
String name
static constraints = {
name(shared:'nameShared')
}
}
class Teacher{
String firstName
String lastName
static constraints = {
firstName(shared:'nameShared')
}
}
我想用两个名称和firstName相同的验证,但因为我在验证硬编码字段名,它总是工作名字而不是名字,所以我想知道如果无论如何,我可以得到一个字段名称的参考,并使验证器通用,请帮助
哇,我怎么会想念那个?感谢艾俄罗斯 –