grails中的自定义验证不起作用

时间:2014-11-04 05:44:37

标签: grails groovy

我有一个简单的代码用于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

2 个答案:

答案 0 :(得分:2)

您将错误消息放在错误的位置:

这样做:

person.other.requiredfield = Please mention your nationality.

注意错误代码的差异,即替换"国籍"与"其他"。

答案 1 :(得分:1)

您是否尝试在messages.properties中提供完全限定的名称?

类似于:

com.domain.Person.other.requiredfield = Please mention you nationality