Я новичок в Wicket, но поиск этой проблемы не дал мне ничего, что имело бы смысл.Поэтому я надеюсь, что кто-то в SO может помочь.
У меня есть объект SiteChoice, который расширяет Form, и объект SiteList, который расширяет DropDownChoice.Мой класс SiteChoice выглядит следующим образом:
public class SiteChoice extends Form {
public SiteChoice(String id) {
super(id);
addSiteDropDown();
}
private void addSiteDropDown() {
ArrayList<DomainObj> siteList = new ArrayList<DomainObj>();
// add objects to siteList
ChoiceRenderer choiceRenderer = new ChoiceRenderer<DomainObj>("name", "URL");
this.add(new SiteList("siteid",siteList,choiceRenderer));
}
}
Затем я просто добавляю свой объект SiteChoice в свой объект Page а-ля:
SiteChoice form = new SiteChoice("testform");
add(form);
Шаблон моего Wicket имеет:
КогдаЯ поднимаю страницу, она отрисовывается нормально - выпадающий список корректно отображается.Когда я нажимаю Submit, я получаю эту странную ошибку:
WicketMessage: Method onFormSubmitted of interface
org.apache.wicket.markup.html.form.IFormSubmitListener targeted at component
[MarkupContainer [Component id = fittest]] threw an exception
Root cause:
java.lang.IllegalStateException: Attempt to set model object on null
model of component: testform:siteid
at org.apache.wicket.Component.setDefaultModelObject(Component.java:3033)
at
org.apache.wicket.markup.html.form.FormComponent.updateModel(FormComponent.java:1168)
at
[snip]
Я не могу понять, что является нулем.Это оказало хорошо, таким образом это нашло объекты.Чего мне не хватает?