grails模板中可用的变量

grails模板中可用的变量,grails,groovy,grails-3.0.10,Grails,Groovy,Grails 3.0.10,我正在尝试编辑grails脚手架模板,以便在create.gsp和edit.gsp中创建单个字段 如果我在create.gsp中添加以下内容 <% def d = new grails.core.GrailsDomainClass (collegeapplication.Student.class) d.persistentProperties.each { %> ${it} <% }

我正在尝试编辑grails脚手架模板,以便在create.gsp和edit.gsp中创建单个字段

如果我在create.gsp中添加以下内容

<%
        def d = new grails.core.GrailsDomainClass (collegeapplication.Student.class)
        d.persistentProperties.each {
            %>
    ${it}
    <%
        }
    %>

${it}
我得到
无法解析类grails.core.GrailsDomainClass
因此,我无法使用中列出的任何常用方法加载任何域类 或

有什么想法吗

我想要的最终结果是
我想要生成所有要生成的命令
对于每个属性

使用Grails3.x中的
scaffolding
插件,不可能实现您想要实现的目标。在为域生成模板时,scaffolding插件不加载任何域类,或者可以说它不加载grails应用程序

脚手架插件使用
create script
生成的脚本生成模板

在Grails3.x中,不可能在内存中加载Grails应用程序 通过
create script
命令创建的代码生成脚本

欲了解更多信息,请阅读此

所以你有两个选择:

  • 使用
    Create命令创建您自己的脚手架任务,如上面给出的链接所述
  • 使用scaffolding插件并扩展
    FormFieldsTagLib
    来定义
    标记的自定义行为

  • 为什么不试试
    def domainClass=grailsApplication.getDomainClass(collegeapplication.Student.class)
    ?@VinayPrajapati如何获取grailsApplication的实例?我认为在运行generateall命令时,它无论如何都不可用。默认情况下,您可以在gsp页面上获得它。在模板上,您可以毫无问题地使用它。尝试一下,或者如果您需要完整的解决方案,我可以将其粘贴为答案。:)@VinayPrajapati表示,grailsApplication没有此类属性。我已经试过了。也许可以帮你!