首页 > 解决方案 > 在 Grails 中动态创建可用脚手架的菜单

问题描述

我的 Grails 应用程序中有一堆模型类,所有这些都是为了动态构建它们各自的数据库表。对于应用程序的索引,我想要一个包含所有这些脚手架的菜单,以便在添加新模型时更新菜单。

是否有任何自动的 Grails 方式来执行此操作,或者我是否坚持创建一个简单的索引视图,其中为每个类静态输入一堆g:link' 以将用户带到他们各自的 CRUD 视图?

标签: javagrailsgroovy

解决方案


您可以像这样简单地构建它们的列表:

<ul>
    <g:each var="c" in="${grailsApplication.controllerClasses.sort { it.fullName } }">
    <li><g:link controller="${c.logicalPropertyName}">${c.fullName}</g:link></li>
    </g:each>
</ul>

这段代码取自一个旧的 Grails 1.3x 项目,默认是index.gsp. 不确定它在最新版本的 Grails 中是否仍然有效,但它至少应该让您了解可以动态执行的操作。

更新 正如 Jeff Scott Brown 所指出的,这将包括所有控制器,无论是否使用脚手架,以及插件提供的控制器。理论上,您可以从 中进一步过滤生成的类grailsApplication.controllerClasses,检查它们的包(假设您的域在一个或多个已知包中)和/或它们是否是脚手架(static scaffold = true)。


推荐阅读