Переменные, доступные в шаблонах Grails

Я пытаюсь отредактировать шаблон лесов Grails для создания отдельных полей в create.gsp и edit.gsp

Если я добавлю следующее в create.gsp

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

я получил unable to resolve class grails.core.GrailsDomainClassВ связи с этим я не могу загрузить какой-либо из моего класса домена, используя любой из общих методов, перечисленных в Groovy способ динамического создания экземпляра класса из String или в Получить имена полей класса домена

Есть идеи?

Конечный результат, который я хочу, вместо <f:all bean="parentsInfomormation"/>Я хочу, чтобы команда генерировать все<f:field bean="person" property="name"/> для каждого свойства

1 ответ

С scaffolding плагин в Grails 3.x, невозможно сделать то, что вы пытаетесь достичь. При создании шаблонов для доменов плагин scaffolding не загружает ни один из классов домена, или вы можете сказать, что он не загружает приложение grails.

Плагин Scaffolding использует скрипты, сгенерированные create-script генерировать шаблоны.

В Grails 3.x невозможно загрузить приложение Grails в скрипте генерации кода, созданном create-script команда.

Для получения дополнительной информации, прочитайте эту ссылку.

Итак, у вас есть два варианта:

  1. Создайте свою собственную задачу с использованием лесов create-command как объяснено в ссылке, приведенной выше.
  2. Используйте плагин для лесов и расширяйте FormFieldsTagLib определить пользовательское поведение для <f:all bean=""/> тег.
Другие вопросы по тегам