private int page = 1;
...
public void scrollEvent(ActionEvent event) {
if (event instanceof ScrollerActionEvent) {
ScrollerActionEvent sae = (ScrollerActionEvent)event;
int index = sae.getPageIndex();
if (index > 0) {
page = index;
} else if (sae.getScrollerfacet().equals("next")) {
page = page == getMaxPage() ? page : page + 1;
} else if (sae.getScrollerfacet().equals("fastf")) {
page = page + 5 > getMaxPage() ? getMaxPage() : page + 5;
} else if (sae.getScrollerfacet().equals("last")) {
page = getMaxPage();
} else if (sae.getScrollerfacet().equals("previous")) {
page = page > 1 ? page - 1 : 1;
} else if (sae.getScrollerfacet().equals("fastr")) {
page = page > 5 ? page - 5 : 1;
} else if (sae.getScrollerfacet().equals("first")) {
page = 1;
}
}
}
private int getMaxPage() {
return (int) Math.ceil(getCount() / (tableRows + 0.0));
}
public long getCount() {
//implement a dao method to get the count for the resultset
}
1.基于documentation from Baeldung从hib中获取页面,然后在页面前后用伪对象填充item数组(datascroller只能处理所有项目)。这些伪对象无关紧要,因为它们对用户不可见。只有用户看到的页面才包含来自数据库的真实的对象。为了使其更有效地利用内存,可以用相同的对象填充数组(重用相同的指针)。
1条答案
按热度按时间huwehgph1#
这是我的解决方案,以防有人需要。
1.我需要告诉bean哪个页面需要加载,所以我将这个添加到了我的
t:dataScroller
中1.在我的bean中,我像这样实现了它的方法
1.基于documentation from Baeldung从hib中获取页面,然后在页面前后用伪对象填充item数组(
datascroller
只能处理所有项目)。这些伪对象无关紧要,因为它们对用户不可见。只有用户看到的页面才包含来自数据库的真实的对象。为了使其更有效地利用内存,可以用相同的对象填充数组(重用相同的指针)。