我正在编写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.
我假设我在这里缺少一些简单的东西,但还没有发现什么。关于我做错的任何建议?
答案 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.