【问题标题】:Using a grails/groovy class by reference通过引用使用 grails/groovy 类
【发布时间】:2010-02-03 05:02:44
【问题描述】:

我正在尝试在 grails 中创建自己的 CRUD 控制器,以处理脚手架无法完成的任务。

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

以领域类Job & Note为例

代替

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)工作正常,但创建新实例却不行。 关于如何最好地做到这一点的任何指示。

干杯

【问题讨论】:

    标签: grails groovy


    【解决方案1】:

    使用调用默认构造函数

    def instance = someHandler.newInstance()
    

    以及使用参数的构造函数

    def instance = someHandler.newInstance(params)
    

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-07-11
        • 2011-12-15
        • 1970-01-01
        • 2011-06-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多