如何在Grails3.3中自定义错误消息?

如何在Grails3.3中自定义错误消息?,grails,grails3,Grails,Grails3,在GRAILS中,可以通过以下方式在i18n/messages.properties中定义泛型错误 default.invalid.validator.message=Property [{0}] of class [{1}] with value [{2}] does not pass custom validation 使用GSP文件中的hasErrors方法,错误如下所示 Property [eyeColor] of [class org.application.PersonData]

在GRAILS中,可以通过以下方式在i18n/messages.properties中定义泛型错误

default.invalid.validator.message=Property [{0}] of class [{1}] with value [{2}] does not pass custom validation
使用GSP文件中的hasErrors方法,错误如下所示

Property [eyeColor] of [class org.application.PersonData] with value [brown] does not pass custom validation
是否可以在任何地方定义“属性”和“类”名称的翻译,这样错误就可以以轻薄的形式显示?差不多

Property [eye color] of [user] with value [brown] does not pass custom validation
类似于i18n/messages.properties文件中的设置

org.application.PersonData=user
org.application.PersonData.eyeColor=eye color
是否可以在任何地方定义“属性”和“属性”的翻译 “类”的名称,以便错误可以显示在一个虚饰?差不多

Property [eye color] of [user] with value [brown] does not pass custom validation
对。您可以根据需要生成错误消息

请参阅上的项目

当验证失败时,该自定义验证器将返回一个
列表
列表中的第一个元素表示将用于查找验证错误消息的消息键。
列表
中的每个后续元素都可以是您想要输入消息中的任意值。在消息中,您可以使用
{2}
{3}
等变量,这些变量将被
列表中的值替换
{0}
是正在验证的属性的名称
{1}
是域类的名称<代码>{2}
以及上面的每个后续索引,这些索引将对应于您在消息代码后的
列表中输入的值

您显示的消息(
“值为[brown]的[user]的属性[eye color]未通过自定义验证”
)可以通过如下方式定义属性来实现:

personData.eye.color.invalid=Property [eye color] of [user] with value [{2}] does not pass custom validation.
在这种情况下,为
“eye color”
“user”
使用参数没有意义,因为错误消息仅用于特定域中的特定属性

更多信息请访问

personData.eye.color.invalid=Property [eye color] of [user] with value [{2}] does not pass custom validation.