Старайтесь избегать создания этого промежуточного списка "listForum", было бы лучше, если бы в вашем forumModel был метод "getListForum", поэтому вам не нужно передавать модель в ListView. (см., как CompoundPropertyModels работает здесь https://cwiki.apache.org/WICKET/working-with-wicket-models.html).
И внутри вашего ListView вы используете "getDefaultModelObject ()" вместо "getModel", а затем вы используете это как модель для PropertyModel, это странно.
Я не полностью понимаю вашу модель (ForumHome или ForumModel реализуют IModel?), Но я думаю, что такой подход был бы лучшим подходом:
public class Forum extends Home {
private ForumHome forumHome = new ForumHome();
private ForumModel forumModel = new ForumModel( forumHome );
public Forum() {
super();
add(new ForumForm("ForumForm", forumModel));
}
private static class ForumForm extends Form {
public ForumForm(String wicketId, ForumModel forumModel) {
super(wicketId, new CompoundPropertyModel(forumModel));
ListView<ForumModel> listView = new ListView<ForumModel>("listForum") {
@Override
protected void populateItem(ListItem item) {
IModel<ForumModel> model = item.getModel();
item.add( new Label("lblMainCategory", new PropertyModel(model, "lblMainCategory")) );
item.add( new Label("lblLastSubCategory", new PropertyModel(model, "lblLastSubCategory")) );
item.add( new Label("lblTotalNoofPost", new PropertyModel(model, "lblTotalNoofPost")));
}
};
listView.setOutputMarkupId(true);
add(listView);
}
}
}