如何显示具有grails约束的属性的用户友好错误消息

时间:2011-05-18 13:27:14

标签: grails

我在域类中有一个属性,它有一些约束

([([A-Z0-9]{2,4}-)+[0-9]{1,2}]) 

图案。当用户输入错误的模式时,它会显示

  

类[XXXXX]的属性[XXXXX]值[A1]与所需模式不匹配[([A-Z0-9] {2,4} - )+ [0-9] {1,2} ]

相反,我需要显示用户友好的消息,如何在grails中执行此操作,因为我是这个grails的新手。

由于

3 个答案:

答案 0 :(得分:4)

要自定义每个域类字段,您可以使用类似

的内容
className.fieldName.matches.invalid=your error message

Grails Documentation

中解释

答案 1 :(得分:3)

如果您打开i18n/messages.properties文件,您会看到类似

的属性
  

default.doesnt.match.message =类[{1}]的属性[{0}],其值[{3}]与所需的模式[{4}]不匹配

此属性定义违反正则表达式约束时显示的默认错误消息。如果您只想更改违反此特定属性的正则表达式约束时使用的错误消息,则可以通过添加具有更具体代码的消息来实现此目的。

更新

根据您的后续问题:

  

是否有可能在域类侧或控制器侧进行此操作

您似乎可能希望以编程方式设置错误消息。您可以通过验证后添加到域类的errors属性来执行此操作。这是Errors接口的一个实现,它提供了各种rejectValue方法,允许您以编程方式注册字段错误及其相关消息

答案 2 :(得分:0)

默认消息在i18n文件messages.properties

您将拥有所有默认消息。查看grails doc的i18n part,了解如何指定消息

我认为你需要将className.fieldName.constraintName=message放在i18n目录下的messages.properties文件中