Grails自定义脚手架可以访问控制器名称
我正在尝试编写一个自定义的Grails自定义脚手架可以访问控制器名称,grails,Grails,我正在尝试编写一个自定义的src/templates/scaffolding/Controller.groovy,想知道是否有任何方法可以访问控制器名称?现在看来你只能上“模特”课了。我之所以需要它,是因为我正在自定义渲染以基于控制器为模板目录添加前缀 例如,我有一个名为AuthorAdminController的控制器,我需要自定义列表以使用/admin/user/**目录 如果你有任何问题,请告诉我。我正准备研究如何定制DefaultGrailTemplateGenerator,但我不确定这
src/templates/scaffolding/Controller.groovy,想知道是否有任何方法可以访问控制器名称?现在看来你只能上“模特”课了。我之所以需要它,是因为我正在自定义渲染以基于控制器为模板目录添加前缀
例如,我有一个名为AuthorAdminController
的控制器,我需要自定义列表
以使用/admin/user/**
目录
如果你有任何问题,请告诉我。我正准备研究如何定制DefaultGrailTemplateGenerator
,但我不确定这是否正确
例如:
class UserAdminController {
static scaffold = User
}
目前在我的Controller.groovy中,我得到了className='user',因此我无法访问该控制器。我认为您不能,因为脚手架的工作方式是,您的模板将始终生成名为DomainClassNameController的类(即您的示例中的UserController
),它被加载到一个新的类加载器中,然后实际控制器的元类(UserAdminController
)得到添加到其中的新操作,这些操作委托给生成的UserController
的实例
现在,在执行操作期间,每个控制器都可以访问controllerName
属性,因此这可能为您提供了一种解决方法。我还没有尝试过,但您可以尝试将log.info(“controller:\${controllerName}”)
放入模板中,查看它给您的名称(使其在运行时而不是生成时解析的反斜杠)