java - 在 Grails 中动态创建可用脚手架的菜单
问题描述
我的 Grails 应用程序中有一堆模型类,所有这些都是为了动态构建它们各自的数据库表。对于应用程序的索引,我想要一个包含所有这些脚手架的菜单,以便在添加新模型时更新菜单。
是否有任何自动的 Grails 方式来执行此操作,或者我是否坚持创建一个简单的索引视图,其中为每个类静态输入一堆g:link
' 以将用户带到他们各自的 CRUD 视图?
解决方案
您可以像这样简单地构建它们的列表:
<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
)。
推荐阅读
- java - Maven Build 卡住了很长时间,调试日志显示 [DEBUG] 我们有一个重复的 META-INF/MANIFEST.MF
- android - 回栈和导航
- php - PHP Paypal SDK - 获取 20 条最新交易
- python - 如何从不同文件夹中的文件导入 python 类?
- powershell - 公司用户和 Azure AD 用户到底有什么区别?
- angular - Angular OAuthModule 配置工厂
- python - 如何处理 np.array 作为图像生成器中的训练集
- r - 用ggplot绘制最佳拟合线以在r中进行回归
- javascript - 通过 Chrome 扩展连接到 Postgres 数据库
- typescript - 鼠标滚轮功能在苗条上返回错误