我想爲屬性編寫一個通用自定義驗證器,使其通用我需要對封閉內的字段名稱進行引用,代碼如下 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相同的驗證,但因爲我在驗證硬編碼字段名,它總是工作名字而不是名字,所以我想知道如果無論如何,我可以得到一個字段名稱的參考,並使驗證器通用,請幫助
哇,我怎麼會想念那個?感謝艾俄羅斯 –