Как я могу привязать несколько флажков к списку в Play Framework? - PullRequest
0 голосов
/ 30 марта 2012

У меня есть список флажков в форме, основанной на некоторых уже существующих объектах в системе, например:

#{list items:foobars, as:'bar'}
    <div>
        #{set name:"foo.bars[" + bar_index + "]" /}
        <label for="${bar.name}">${bar.name}</label>
        <input id="${bar.name}" name="${name}" type="checkbox">
    </div>
#{/list}

Я бы хотел, чтобы Play связал их со списком объектов Bar, которыеОбъект Foo должен содержать.(У Фу и Бара есть отношения многие ко многим)

Это не работает.Как я могу сделать это с Play?

1 Ответ

2 голосов
/ 30 марта 2012

В моем случае я прибег к старой привязке коллекции Long, я не смог выполнить привязку связанных JPA-коллекций, используя предложенные в id имена полей: используйте следующую коллекцию для привязки идентификаторов, выбранных в веб-форме:

Set<Long> bars

Имейте в виду, что если флажок не установлен, коллекция может быть нулевой, а не нулевой длины, поэтому код проверки должен выглядеть следующим образом:

if (bars == null || bars.size() == 0)
   validation.addError("bars", "Please selecta at least one bar");

В контроллере включенобработчик, вы должны создать бары с JPA, найти по id и добавить в коллекцию foo:

for (Long id : bars)
   foo.bars.add((Bar) Bar.findById(id));

ByeHans

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