【发布时间】:2012-10-01 02:34:17
【问题描述】:
我有一个 Grails 项目,在该项目中我使用大量定制的脚手架模板将 beforeUpdate 模板方法添加到 update,这样我就可以轻松地自定义脚手架 Controller,而无需分别生成然后编辑每个控制器。
不幸的是,这不起作用,只有来自脚手架的 beforeUpdate 被调用。
我怀疑这与 Groovy 用于将脚手架代码注入实际 Controller 的代码生成有关,但我找不到任何确认。
我要问的是问题的解决方案或对它为什么不起作用的解释。
这是脚手架代码:
def beforeUpdate = {
println "beforeUpdate from scaffold"
}
def update() {
// call before update hook
beforeUpdate()
def ${propertyName} = ${className}.get(params.id)
if (!${propertyName}) {
flash.message = message(code: 'default.not.found.message', args: [message(code: '${domainClass.propertyName}.label', default: '${className}'), params.id])
redirect(action: "list")
return
}
[...]
和脚手架的控制器代码(没有被调用,虽然我相信它应该被调用):
class CalendarController {
static scaffold = Calendar
def beforeUpdate = {
println "beforeUpdate from controller"
}
}
我已经尝试过 grails clean ;-)
更新
我最终意识到,由于 Grails 脚手架的设计方式,这根本不可能。结束。
【问题讨论】:
-
要“关闭”这个问题,您应该添加自己的答案,然后将其标记为已接受。
标签: grails controller scaffold