いくつかの基本的なユーティリティ機能を持つコントローラーに追加する mixin を作成しています。mixin で実行したい機能の 1 つは、g.message
taglib を使用してエラーを文字列に解決することです。残念ながら、GrailsApplication
静的 mixin メソッド内の にアクセスできないようです。
mixin から Grails taglibs にアクセスするにはどうすればよいですか? または、すべてのコントローラー間で共通のコードを共有するという目的を達成するためのより良い方法はありますか?
これが私が実行しているコードです。問題は、静的メソッドで 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
}