我在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.

请注意错误代码的区别,即用“其他”替换“国籍”。

07-24 09:35