gpt4 book ai didi

model-view-controller - 您如何在不同的 grails Controller 中共享常用方法?

转载 作者:行者123 更新时间:2023-12-03 10:27:21 24 4
gpt4 key购买 nike

目前当我需要分享一个像 processParams(params) 这样的方法时在不同的 Controller 之间,我使用继承或服务。
这两种解决方案都有一些不便之处:

  • 使用继承,您不能使用多重继承,这意味着您需要将所有 Controller 实用程序方法放在一个地方。此外,grails 中存在一个错误,在开发模式下未检测到 Base Controller 类中的任何代码更改(您需要重新启动应用程序)
  • 使用服务,您无法访问所有注入(inject)的属性,如参数、 session 、刷新...

  • 所以我的问题是:有没有其他方法可以使用多个 Controller 可以访问的一些常用方法?

    最佳答案

    我喜欢的一个选择是将常用方法编写为一个类别,然后根据需要将其混合到 Controller 中。它比继承提供了更多的灵 active ,可以访问参数之类的东西,并且代码简单易懂。

    这是一个小例子:

    @Category(Object)
    class MyControllerCategory {
    def printParams() {
    println params
    }
    }

    @Mixin(MyControllerCategory)
    class SomethingController {

    def create = {
    printParams()
    ...
    }

    def save = {
    printParams()
    }
    }

    关于model-view-controller - 您如何在不同的 grails Controller 中共享常用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4195492/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com