【发布时间】:2015-08-22 05:06:05
【问题描述】:
我已经使用 Spring PagedListHolder bean 在 MVC 页面上实现了分页。对于页面大小和分页来说一切都很好,但我正在努力解决这个问题。我猜我完全忽略了这一点,因为我的代码根本没有任何区别,而且我一直在努力找到很多我真正理解的文档。代码的简单版本如下。它没有失败,但它什么也没做(我打算让它工作,然后开始修改它以使用多个字段)。
本质上,BookBean 有许多字段 - Id、Title、Author、YearPublished 等。
//Load getBooks() into a list as it returns a Set
List <BookBean> booklist = new ArrayList <BookBean>(getBooks());
PagedListHolder <BookBean> pagedListHolder = new PagedListHolder<BookBean> (booklist);
MutableSortDefinition x = new MutableSortDefinition ("title", true, true);
pagedListHolder.setSort(x);
我假设 PagedListHolder bean 会为我实现排序,但它什么也没做。我无法弄清楚这是因为我没有正确定义和实现排序定义,还是因为我对它的期望过高。 BookBean 对象中没有 Comparator 实现。我想如果我想自己进行排序而不打扰 PagedListHolder 排序,我想这就是我需要做的。
谁能告诉我是否有一种方法可以在不实现 Comparator 接口的情况下在 PagedListHolder 中进行排序,或者这就是上述代码不按标题排序的原因?
非常感谢。
【问题讨论】:
-
看来这应该可行。只要“title”确实是 BookBean 类的属性。您是否尝试过实现 SortDefinition 而不是使用 MutableSortableDefinition?
-
您可能还需要在 PagedListHolder 对象上实际调用“doSort()”
-
非常感谢。第二条评论让我又看了一遍。我在文档中看到了 doSort() ,但它在实现中是隐藏的,所以我认为没有必要。我猜有一个初始的默认排序,即使它是 null 并且需要的是resort()。谢谢。
标签: java sorting spring-mvc pagination