0

我想覆盖(扩展)grails 3 控制器的重定向方法。

在 grails 2 中,这是通过 metaClass 覆盖方法来完成的。请参阅覆盖 Grails 重定向方法

由于 grails 3 这不再起作用。

我想要实现的目标:我想操纵传递给我实现的每个控制器的重定向方法的参数映射(按包名称过滤)

或者更具体地说:我想根据一些小逻辑添加/更改映射参数

4

2 回答 2

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
    }
}
于 2018-01-28T16:13:15.443 回答
0

您可以尝试使用 Type Annotation 和GroovyASTTransformation. 例如:看一下 -注入方法的groovy.transform.Sortable注解使用compareToorg.codehaus.groovy.transform.SortableASTTransformation

于 2018-01-28T14:04:59.950 回答