我想覆蓋默認的控制器重定向方法,並且似乎無法獲得以下代碼工作。grails覆蓋重定向控制器方法
我創建了一個插件,我試圖用「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」,但它doesn一旦應用程序啓動後,通過控制器進行重定向時,不會進入此處。