我在域类中有一个属性,它有一些约束
([([A-Z0-9]{2,4}-)+[0-9]{1,2}])
图案。当用户输入错误的模式时,它会显示
类[XXXXX]的属性[XXXXX]值[A1]与所需模式不匹配[([A-Z0-9] {2,4} - )+ [0-9] {1,2} ]
相反,我需要显示用户友好的消息,如何在grails中执行此操作,因为我是这个grails的新手。
由于
答案 0 :(得分:4)
要自定义每个域类字段,您可以使用类似
的内容className.fieldName.matches.invalid=your error message
中解释
答案 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
文件中