Grails为命令对象定义自定义错误消息

时间:2014-02-23 17:16:15

标签: validation grails

我正在编写Grails(当前2.3.3)应用程序并创建了一个类似于以下内容的可验证命令对象:

@Validateable
class MyCustomCommand {
  String name

  static constraints = {
    name blank: false
  }
}

在我的i18n/messages.properties文件中,我定义了以下属性来覆盖默认错误消息。

MyCustomCommand.name.blank=Name must be provided.
MyCustomCommand.name.null=Name must be provided.

根据Grails文档,我应该采用格式[Class Name].[Property Name].[Constraint Code]。当我运行我的应用程序时,如果我将值保留为空,我仍然会获得null属性的默认消息。

我还尝试了默认消息的示例并将其定义为follow,但仍然获得默认消息。

MyCustomCommand.name.blank.message=Name must be provided.
MyCustomCommand.name.null.message=Name must be provided.

我假设我在这里缺少一些简单的东西,但还没有发现什么。关于我做错的任何建议?

2 个答案:

答案 0 :(得分:2)

确实很简单。消息应如下所示:

myCustomCommand.name.blank=Name must be provided.
myCustomCommand.name.nullable=Name must be provided.


//className.propertyName.blank (camelCase with first letter of class name lower)

答案 1 :(得分:1)

所以,正如我所料,这很简单。我使用默认值作为使用null的示例,其中我真正需要的是nullable。哪个有意义,因为它匹配约束名称。

因此正确的版本是:

myCustomCommand.name.blank=Name must be provided.
myCustomCommand.name.nullable=Name must be provided.