Wicket и Java: CheckGroup содержит нулевой объект модели - PullRequest
2 голосов
/ 12 мая 2011

Я получаю эту ошибку:

CheckGroup содержит нулевой объект модели, должен быть объектом типа java.util.Collection

Я не уверен, что является причиной этой проблемы, и никто из моей команды не может решить эту проблему.

Мне пришлось отредактировать это, поскольку оно содержит элементы, связанные с бизнесом.

Java:

Form<?> form = new Form<Object>("myform");
add(form);
CheckGroup<?> checkGroup = new CheckGroup<Object>("checkgroup");
form.add(checkGroup);       
checkGroup.add(new CheckGroupSelector("groupselector"));
listView = new ListView<info>("listView", sessionObject.getList())
    {
      private static final long serialVersionUID = 1L;

      @Override
      protected void populateItem(ListItem<info> item)
      {
          item.add(new Check("recordSelected", item.getModel()));
          item.add(new Label("IDListItem", new PropertyModel<String>(item.getModel(), "Number")));
      }
    };
checkGroup.add(listView);

HTML:

                    <table wicket:id="checkgroup">
                        <tr>
                            <td width="20"><input wicket:id="groupselector" type="checkbox" /></td>
                            <td width="80"><b>Number</b></td>
                        </tr>
                        <tr wicket:id="listView">
                            <td width="20"><input wicket:id="recordSelected" type="checkbox" /></td>
                            <td width="80"><span wicket:id="IDListItem"></span></td>
                        </tr>
                    </table>

Ответы [ 3 ]

2 голосов
/ 13 мая 2011

Похоже, вы следуете примеру с wicketstuff.org. Но этот пример неполон, так как он не передает модель в CheckGroup. Игорь Вайнберг упомянул на форумах пользователей Wicket, что использовалась составная модель [1] .

Так что передайте модель, и все будет в порядке.

0 голосов
/ 15 ноября 2016

Вы должны установить модель на место использования.пример кода:

CheckGroup targetsGroup = new CheckGroup<>("targets", new ArrayList<City>());
0 голосов
/ 13 мая 2011

Попробуйте использовать фиктивную модель, например, CheckGroup<?> checkGroup = new CheckGroup<Object>("checkgroup", new ArrayList<Object>());

Javadoc говорит:

Конструктор, который будет создавать коллекцию моделей по умолчанию

при использовании 1-arg конструктор, но я не вижу, где в коде создается эта коллекция моделей по умолчанию ...

...