如何在grails框架中调用一个类方法到另一个类方法?示例...
class ChartClassController {
def index() {}
def create(){
def chartClassTypeList = ChartClassType.list()
}
}
class ChartGroupController {
def index() {}
def create(){
def chartGroupTypeList = ChartGroupType.list()
}
}
我只是在ChartClassController中调用类(ChartGroupController)方法(创建)?这怎么可能 ??需要帮助!!
答案 0 :(得分:4)
控制器不是常规类,它们基本上是响应请求的事件处理程序。生命周期由Grails和Spring管理,它们基本上不能直接调用。
不要从另一个控制器调用一个控制器,而是考虑将逻辑从两个控制器中所需的方法移动到src / groovy下的实用程序类。然后从两个控制器中调用它。
另一种选择是创建两个控制器都扩展的基类,并将该共享逻辑放在两个控制器从其创建方法调用的基类方法中。
答案 1 :(得分:1)
您可以使用重定向(从用户角度来看是否有意义是有争议的):
def create(){
redirect(class:"ChartGroupController", action:"create")
}
此外,没有什么可以阻止您在任何控制器中调用任何域类,因此您的ChartClassController
可以:
def create(){
def chartGroupTypeList = ChartGroupType.list()
}
如果您愿意,甚至可以使用ChartGroup
目录中的视图。但您可能希望将“域”分开以保持简单性和可读性。