gpt4 book ai didi

grails - 如何替换我自己的自定义动态脚手架方法

转载 作者:行者123 更新时间:2023-12-02 14:04:08 26 4
gpt4 key购买 nike

我的 grails 应用程序必须为每个域类的许多标准动态脚手架方法定义一些额外的行为。

我知道我可以复制我需要为每个 Controller 添加的方法,这确实是我目前所做的。这确实意味着我的自定义代码被样板脚手架所掩盖。

我也尝试过导入和修改模板,但如果我在 Controller 中生成静态脚手架,它们似乎只会参与其中。不用说,这没有多大帮助。

拦截器似乎也不是我想要的,因为它们包含 Action 而不是插入其中。我想过以某种方式拦截 GORM 调用,但这也不是我真正想要的。

我真正想做的是将基本的动态脚手架方法替换为在我希望能够修改的地方有钩子(Hook)的方法。

以下显示了我正在尝试实现的示例

    // standard "save" dynamic scaffold method decorated with hooks for custom code
def save() {
def ${propertyName} = new ${className}(params)

saveBeforeSave(${propertyName})

if (!${propertyName}.save(flush: true)) {
render(view: "create", model: [${propertyName}: ${propertyName}])
return
}

saveAfterSave(${propertyName})

flash.message = message(code: 'default.created.message', args: [message(code: '${domainClass.propertyName}.label', default: '${className}'), ${propertyName}.id])
redirect(action: "show", id: ${propertyName}.id)
}

// Placeholders hooks to be overridden in controller as necessary
def saveBeforeSave(${propertyName}) {
}
def saveAfterSave(${propertyName}) {
}

最佳答案

你不能简单地使用命令:

grails install-templates

然后修改 Controller ?
GuideReference .

只需配置您的 Controller
static scaffold = *MODEL*

并将您的修改应用到 /src/templates/scaffolding/Controller.groovy
无需生成即可使用 generate-controller

关于grails - 如何替换我自己的自定义动态脚手架方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9291240/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com