Как плагин полей Grails работает при создании простой формы вставки?

Информация о приложении:

  • Версия Grails: 3.1.8
  • Крутая версия: 2.4.6
  • Ява: 8

Я добавил плагин полей в качестве зависимости в build.gradle и использую версию полей 2.1.0. Доступная для этого документация находится здесь.

Мой класс домена выглядит следующим образом:

    String name
    String addressLine1
    String addressLine2
    String addressLine3
    String town
    String county
    String postCode
    String phoneNumber

Я хочу создать простую форму вставки для этого объекта. Моя форма на данный момент:

<g:form name="insertPerson" controller="person" action="savePerson">

    <f:field bean="person" property="name"/>

    <g:submitButton name="create"/>

</g:form>

Насколько я понимаю, в плагине полей есть поля и шаблоны виджетов, для которых я создал необходимые папки и файлы gsp. Что должно быть в этих файлах, чтобы моя форма работала?


person kulsoompatel    schedule 21.06.2016    source источник


Ответы (1)


Вам не нужно ничего, кроме вашего домена и

<f:all bean="person" />

Это отобразит все поля в bean-компоненте. Если вы хотите только переопределить, начните смотреть на создание шаблонов. Вы можете увидеть, что генерирует плагин plugin fields, просмотрев Гитхаб

(Или вы можете посмотреть непосредственно на сгенерированный источник html)

Поле f:all, f:field больше подходит для строительных лесов. Если вам нужен полный контроль, используйте g:field и связанные теги.

person Demian    schedule 21.06.2016
comment
Я использую Fields версии 2.1.0, которая является ответвлением версии 1.4, и она не поддерживает тег f:all. Я удалил папки шаблонов, которые я создал, однако форма по-прежнему не работает, так как я получаю сообщение об ошибке ниже. ERROR errors.GrailsExceptionResolver - NotReadablePropertyException Недопустимое свойство «имя» класса компонента [java.lang.String]: свойство «имя» компонента не читается или имеет недопустимый метод получения: тип возвращаемого значения метода получения соответствует типу параметра сеттер?. - person kulsoompatel; 22.06.2016