如何覆盖 Grails 中的默认错误消息?

Posted

技术标签:

【中文标题】如何覆盖 Grails 中的默认错误消息?【英文标题】:How can I override the default error message in Grails? 【发布时间】:2011-06-22 19:08:44 【问题描述】:

我有一个带有姓氏字段的 Person 对象。姓氏字段不能为空。当用户在lastName字段中提交表单空白值时,用户看到的错误信息是:

Property [lastName] of class [com.example.Person] cannot be blank

这个错误信息很糟糕。我想将其自定义为更用户友好的内容,例如“姓氏字段不能为空”

我该怎么做?

【问题讨论】:

【参考方案1】:

参见文档第 7 章:http://grails.org/doc/latest/

您将更改 grails-app/i18n/messages.properties 并添加

person.lastName.blank=The Last Name field cannot be blank

【讨论】:

谢谢。我花了很多时间试图找到那个 - 不知何故我在那个页面上错过了它。 每个约束页面中还有关于它使用的属性名称的信息 - 这些信息位于约束部分的左侧框架中。例如。 creditCard 约束使用 'className.propertyName.creditCard.invalid' - 请参阅 grails.org/doc/latest/ref/Constraints/creditCard.html 以获取直接链接。 它对我不起作用。似乎 grails 版本不同会导致此问题。 这里与 Grails 2.5.0 相同。我无法覆盖插件中的消息。 我在 Grails 2.5.0 中也看到了这个问题 - 无法覆盖来自插件的消息【参考方案2】:

在 Grails 3 中,您需要更改 grails-app/i18n/messages.properties

default.blank.message=0 字段不能为空

【讨论】:

以上是关于如何覆盖 Grails 中的默认错误消息?的主要内容,如果未能解决你的问题,请参考以下文章

自定义错误消息的 Grails 问题

Grails 覆盖默认的电子邮件验证

Django如何覆盖默认表单错误消息

Typo3:如何通过属性验证覆盖默认错误消息?

Grails 中的自定义验证器中的异常

如何使用hibernate grails 3,mysql?