Невозможно привязать список к объекту команды без индексации - PullRequest
0 голосов
/ 06 октября 2018

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

package testbinding
import grails.validation.Validateable

@Validateable
class SelectionCommand implements Serializable {
    List<Book> books
    Author author
}

С книгой и автором:

package testbinding

class Book {
    Long id
    String name

    static constraints = {
    }
}

package testbinding

class Author {

    Long id
    String name

    static constraints = {
    }
}

Контроллер:

def index(SelectionCommand command) {
    println command
    if (command?.hasErrors()) {
        println command?.errors
    }

    [command: command]
}

Если у меня есть форма, использующая индексы для домена книги, привязка верна.Например:

<label>Books</label>
<input name="book[0].id" value="1"/>
<input name="book[1].id" value="2"/>
<label>Author</label>
<g:select name="author.id" value="${1L}" from="${Author.list()}" optionKey="id" optionValue="name"/>
<button type="submit">Submit</button>

Это связывает правильно, но мне нужно, чтобы книга была раскрывающимся, поэтому я не могу ее проиндексировать.

При использовании:

<label>Books</label>
<g:select name="books" from="${Book.list()}" multiple="true" optionKey="id" optionValue="name" value="${[1L, 2L]}"/>
<label>Author</label>
<g:select name="author.id" value="${1L}" from="${Author.list()}" optionKey="id" optionValue="name"/>
<button type="submit">Submit</button>

Я не могу правильно получить привязку.Я пробовал с name="books" и name="books.id", и с обоими я получаю ошибки проверки.

Мой пример проекта использует Grails 2.3.9, но у меня были те же проблемы в 2.3.11.

Для этого существует старая проблема , но она должна была быть решена в 2.3.x.

1 Ответ

0 голосов
/ 08 октября 2018

Отвечая на мой собственный вопрос.Это, очевидно, все еще было проблемой в Grails 2 до 2.4.4 (https://github.com/grails/grails-core/issues/1380).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...