目前当我需要分享一个像 processParams(params)
这样的方法时在不同的 Controller 之间,我使用继承或服务。
这两种解决方案都有一些不便之处:
所以我的问题是:有没有其他方法可以使用多个 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/