我正在尝试用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)但创建新实例却没有。 关于如何做到这一点的任何指示。
干杯
答案 0 :(得分:2)
使用
调用默认构造函数def instance = someHandler.newInstance()
和使用
的参数的构造函数def instance = someHandler.newInstance(params)
答案 1 :(得分:0)
如果您对Grails默认提供的脚手架控制器/视图不满意,并希望以类似的方式为所有域类更改它们,更好的方法可能是简单地编辑用于生成的模板这些控制器/视图。
您可以通过运行脚本grails install-templates
来执行此操作。这将在src/templates/scaffolding
目录中创建许多文件,每个文件都定义用于生成脚手架工件的模板。
更改这些模板以创建所需的控制器/视图。如果您已经为任何域类运行grails generate-all
,则需要再次为这些类运行它以更新现有的脚手架。