我正在创建一个 mixin 以添加到具有一些基本实用功能的控制器中。我想在 mixin 中执行的功能之一是使用g.message
taglib 将错误解析为其字符串。不幸的是,我似乎无法GrailsApplication
在我的静态 mixin 方法中访问 。
我将如何从我的 mixin 访问 Grails 标签库,或者是否有更好的方法来实现我正在做的事情——在所有控制器之间共享公共代码?
这是我正在运行的代码。我认为问题是如何在静态方法中访问 Grails 标签库:
static def preparePostResponse(domainInstance) {
def grailsApplication = new User().domainClass.grailsApplication
def postResponse = new AjaxPostResponse(domainObject: domainInstance)
if (domainInstance.hasErrors()) {
g.eachError(bean: domainInstance) {
postResponse.errors."${it.field}" = g.message(error: it)
}
postResponse.success = false
postResponse.message = "There was an error"
}
else {
postResponse.success = true
postResponse.message = "Success"
}
return postResponse
}