我想覆盖(扩展)grails 3 控制器的重定向方法。
在 grails 2 中,这是通过 metaClass 覆盖方法来完成的。请参阅覆盖 Grails 重定向方法
由于 grails 3 这不再起作用。
我想要实现的目标:我想操纵传递给我实现的每个控制器的重定向方法的参数映射(按包名称过滤)
或者更具体地说:我想根据一些小逻辑添加/更改映射参数
我想覆盖(扩展)grails 3 控制器的重定向方法。
在 grails 2 中,这是通过 metaClass 覆盖方法来完成的。请参阅覆盖 Grails 重定向方法
由于 grails 3 这不再起作用。
我想要实现的目标:我想操纵传递给我实现的每个控制器的重定向方法的参数映射(按包名称过滤)
或者更具体地说:我想根据一些小逻辑添加/更改映射参数
我想覆盖(扩展)grails 3 控制器的重定向方法。
您可以按照通常的语言规则简单地覆盖该方法...
class DemoController {
// ...
void redirect(Map m) {
// do whatever you like here...
}
}
如果您想调用原始redirect
方法,您也可以这样做,但您需要显式实现Controller
特征......
import grails.artefact.Controller
class DemoController implements Controller {
void redirect(Map m) {
// do whatever you like here before
// invoking the original redirect...
// invoke the original redirect...
Controller.super.redirect m
}
}
您可以尝试使用 Type Annotation 和GroovyASTTransformation
. 例如:看一下 -注入方法的groovy.transform.Sortable
注解使用compareTo
org.codehaus.groovy.transform.SortableASTTransformation