PageableListView 正确的参数

PageableListView right arguments

我想用这些参数创建一个 PageableListView:

public PageableListView(final String id, final IModel<? extends List<T>> model

但是第二个参数 final IModel<? extends List<T>> model 让我有点困惑。我有一个列表 List<Individual> individualList,其中有一些我想用于我正在制作的 PageableListView 的属性。我的问题是我不知道如何转换它,或者让它成为一个可接受的论点。

这是我正在使用的内容:

 List<Individual> individualList = getIndividuals();
 WebMarkupContainer datacontainer = new WebMarkupContainer("data");
 datacontainer.setOutputMarkupId(true);
 add(datacontainer);

PageableListView listview = new PageableListView("rows", individualList, 10) {

        @Override
        protected void populateItem(ListItem item)
        {
            Individual individual = item.getModelObject();
            item.add(new Label("individual_Id", String.valueOf(individual.getId())));
            item.add(new Label("name", individual.getFirstName()));

    };
    datacontainer.add(listview);
    datacontainer.add(new AjaxPagingNavigator("navigator", listview));
    datacontainer.setVersioned(false);

Individual individual = item.getModelObject(); 的行上它给了我 Type mismatch: cannot convert from Object to IndividualCache 的错误。

PageableListView 有第二个构造函数,它只接受一个 List<T> 作为参数:

PageableListView(String id, List<T> list, int itemsPerPage)

参见:JavaDoc

但是您已经在使用该构造函数,所以这里确实没有问题。 您的问题是 PageableListView<T> 是通用的 class,但您将其用作 raw type。这就是为什么方法 getModelObject 只会 return 一个 Object.

不要那样做。

而是使用通用参数来指定您的 PageableListView 应该显示哪种对象:

 PageableListView<Individual> listview = new PageableListView<Individual>("rows", individualList, 10)