通过引用使用grails / groovy类

时间:2010-02-03 05:02:45

标签: grails groovy

我正在尝试用grails创建我自己的CRUD控制器,用于脚手架不会做的事情。

我不想为每个域维护控制器的代码,而是希望有一个控制器可以管理通用CRUD调用的任何域..因为唯一的区别是域类名。

使用域类Job&的示例注意

而不是

Job.get(id)
Job.list()
def instance = new Job(params)

Note.get(id)
Note.list()
def instance = new Job(params)

我在考虑

def someHandler = Job // configurable

someHandler.get(id)
someHandler.list()
def instance = new someHandler(params)

前两个静态方法工作正常(get,list)但创建新实例却没有。 关于如何做到这一点的任何指示。

干杯

2 个答案:

答案 0 :(得分:2)

使用

调用默认构造函数
def instance = someHandler.newInstance()

和使用

的参数的构造函数
def instance = someHandler.newInstance(params)

答案 1 :(得分:0)

如果您对Grails默认提供的脚手架控制器/视图不满意,并希望以类似的方式为所有域类更改它们,更好的方法可能是简单地编辑用于生成的模板这些控制器/视图。

您可以通过运行脚本grails install-templates来执行此操作。这将在src/templates/scaffolding目录中创建许多文件,每个文件都定义用于生成脚手架工件的模板。

更改这些模板以创建所需的控制器/视图。如果您已经为任何域类运行grails generate-all,则需要再次为这些类运行它以更新现有的脚手架。