我收到此错误:
CheckGroup包含一个空模型对象,必须是java.util.Collection类型的对象
我不确定导致此问题的原因,我的团队中的任何人都无法解决此问题。
我必须编辑它,因为它包含与业务相关的项目。
爪哇:
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>
答案 0 :(得分:2)
看起来您正在关注wicketstuff.org的示例。但该示例不完整,因为它没有将模型传递给CheckGroup。 Igor Vaynberg在Wicket用户论坛中提到,使用了复合模型[1]。
所以通过一个模型,你会没事的。
答案 1 :(得分:0)
尝试使用虚拟模型,例如
CheckGroup<?> checkGroup = new CheckGroup<Object>("checkgroup", new ArrayList<Object>());
Javadoc说:
将创建默认模型集合的构造函数
使用1-arg构造函数时,但我没有看到代码中创建此默认模型集合的位置...
答案 2 :(得分:0)
您应该将模型设置在使用位置。 示例代码:
CheckGroup targetsGroup = new CheckGroup<>("targets", new ArrayList<City>());