我在grails中有一个用于自定义验证的简单代码,但不知道为什么它不起作用?
我有一个具有2个字段国籍和其他字段的域类Person。条件类似于如果用户选择国籍作为inList
的其他人,则另一个字段为必填字段,并且如果用户跳过此字段,将会引发错误消息。
nationality(blank:false,nullable:false,inList:["Indian", "Other"])
other(blank:true,nullable:true,validator:{val,obj ->
if(obj.nationality!="Indian" && !val){println "values"+val+"nationality"+obj.nationality
return ['requiredfield']
}
我还如下所述在
message.properties
文件中映射了错误的名称person.nationality.requiredfield=Please mention your nationality.
控制台上的输出是值null国籍
最佳答案
您将错误消息放在错误的位置:
做这个 :
person.other.requiredfield = Please mention your nationality.
请注意错误代码的区别,即用“其他”替换“国籍”。