#java #wicket
#java #калитка
Вопрос:
Я получаю эту ошибку:
CheckGroup содержит объект null model, который должен быть объектом типа java.util.Коллекция
Я не уверен, что вызывает эту проблему, и никто из моей команды не может решить это.
Мне пришлось отредактировать это, поскольку оно содержит элементы, связанные с бизнесом.
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>
Ответ №1:
Похоже, вы следуете примеру из wicketstuff.org . Но этот пример неполный, поскольку он не передает модель в CheckGroup. Игорь Вайнберг упоминал на форумах пользователей Wicket, что использовалась составная модель [1].
Так что передайте модель, и все будет в порядке.
Ответ №2:
Попробуйте использовать фиктивную модель, например CheckGroup<?> checkGroup = new CheckGroup<Object>("checkgroup", new ArrayList<Object>());
Javadoc говорит:
Конструктор, который создаст коллекцию моделей по умолчанию
при использовании конструктора с 1 аргументом, но я не вижу, где в коде создается эта коллекция моделей по умолчанию…
Ответ №3:
Вы должны установить модель на место использования. пример кода:
CheckGroup targetsGroup = new CheckGroup<>("targets", new ArrayList<City>());