gpt4 book ai didi

java - 检索 Grails 域验证消息

转载 作者:行者123 更新时间:2023-11-29 13:03:53 25 4
gpt4 key购买 nike

我对 grails 还很陌生,我确信这个问题已经被问过很多次了。我有一个正在用 grails 开发的应用程序。在我的服务中,我在多个表中输入一个条目。如果其中一个因 mysql 唯一约束异常而失败,我会收到一个错误作为 domainInstance.errors 对象的一部分。我如何解析它以将适当的错误代码返回到我的 Controller 。

通常在 Spring ,我通常会为 Controller 添加一个异常拦截器来处理这个问题。在 grails 中执行此操作的首选方法是什么。

最佳答案

当经过验证的域对象出现验证错误时,它们将存储在 domainObject.errors 下,作为 Spring Errors 的实现界面。要在 GSP 中呈现该对象的字段的错误,通常使用类似以下内容:

<g:hasErrors bean="${book}" field="title">
<div class="errors">
<g:renderErrors bean="${book}" field="title" as="list" />
</div>
</g:hasErrors>

显示的确切消息是从 message*.properties 文件解析的。如果您想在 Controller 中获取这些消息,请执行以下操作:

class MyController {

MessageSource messageSource
LocaleResolver localeResolver

def myAction(Book book) {
Locale locale = localeResolver.resolveLocale(request)

if (!book.validate()) {
List allErrorMessages = book.errors.allErrors.collect {
messageSource.getMessage(it, locale)
}

// print all error messages
println allErrorMessages
}
}
}

关于java - 检索 Grails 域验证消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22990388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com