gpt4 book ai didi

Grails Custom Scaffolding 可以访问 Controller 名称

转载 作者:行者123 更新时间:2023-12-02 13:57:24 25 4
gpt4 key购买 nike

我正在尝试编写自定义 src/templates/scaffolding/Controller.groovy并且想知道是否有任何方法可以访问 Controller 名称?现在看来您只能获得“模型”类。我需要它的原因是我正在自定义渲染以根据 Controller 为模板目录添加前缀。

例如,我有一个名为 AuthorAdminController 的 Controller 我需要自定义 list使用 /admin/user/**目录。

如果您有任何问题,请告诉我。我正准备研究如何自定义 DefaultGrailsTemplateGenerator但我不确定这是否是正确的路线。

例子:

class UserAdminController {
static scaffold = User
}

目前在我的 Controller.groovy我得到 className='user' 所以我无法访问 Controller 。

最佳答案

我不认为你可以,因为脚手架的工作方式你的模板总是会生成一个名为 DomainClassNameController 的类(即你的例子中的 UserController ),它被加载到一个新的类加载器中,然后真正的 Controller 的元类( UserAdminController )得到添加到其中的新操作委托(delegate)给生成的 UserController 的实例。

现在每个 Controller 都可以在执行操作期间访问 controllerName 属性,因此这可能会为您提供一种解决方法。我还没有尝试过,但是您可以尝试将 log.info("controller: \${controllerName}") 放入模板中并查看它为您提供的名称(反斜杠使其在运行时而不是生成时解析)。

关于Grails Custom Scaffolding 可以访问 Controller 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14985986/

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