我有一个简单的代码用于grails中的自定义验证,但不知道为什么它不起作用???
我有一个具有2个国籍和其他国家的域类人员。条件就像用户选择国籍为inList
的其他国家一样,那么另一个字段是强制性的,如果用户跳过此字段grails应该提出错误信息。
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 nationality Others
答案 0 :(得分:2)
您将错误消息放在错误的位置:
这样做:
person.other.requiredfield = Please mention your nationality.
注意错误代码的差异,即替换"国籍"与"其他"。
答案 1 :(得分:1)
您是否尝试在messages.properties
中提供完全限定的名称?
类似于:
com.domain.Person.other.requiredfield = Please mention you nationality