【发布时间】:2011-07-16 01:28:36
【问题描述】:
我正在尝试覆盖默认控制器重定向方法,但似乎无法让以下代码工作。
我已经创建了一个插件,我正在尝试使用“doWithDynamicMethods”来替换重定向。
def doWithDynamicMethods = {ctx ->
application.controllerClasses.each() { controllerClass ->
replaceRedirectMethod(controllerClass)
}
}
void replaceRedirectMethod(controllerClass) {
def oldRedirect = controllerClass.metaClass.pickMethod("redirect", [Map] as Class[])
controllerClass.metaClass.redirect = { Map args, Map params ->
// never seems to get here
}
}
我的签名有误还是遗漏了什么?我这样做的原因是,如果满足某个条件,我想更改重定向的 uri,但是使用日志记录/打印语句,我看到它在应用程序启动/编译时进入“replaceRedirectMethod”但它没有应用启动后,通过控制器进行重定向时不要进入那里。
【问题讨论】:
标签: grails grails-plugin