以使用Struts为例,说明一下如何使用eXtremeTable的分页特性
这一切都可以在Action中完成,在Action会用到JSP中eXtremeTable的table标签的属性'tableId' 和'item','tableId'用于完成eXtremeTable的分页,'item'用于返回你分页的结果集,不多不少,刚好是你需要查看的那一页的结果集,比如说,你一页是10条记录,那你访问第20页的时候,'item'的结果集就只有第201条到第210条记录.还有就是在request中加入totalRows的属性,表示本次查询结果的数量
另外,JSP的中,eXtremeTable的table标签要retrieveRowsCallback属性,将该属性设为 org.extremecomponents.table.callback.LimitCallback,这是它默认的分页回调类,你也可以写自已的回调类.设置了该默认的回调类以后,你在Action里就需要向request加入totalRows属性,值为你的查询结果总记录数,这样才会产生翻页的效果.
现在就你的DisplayAction中加分页的特性了,如下:
Limit limit = LimitFactory.createInstanceOfLimit(request, TABLEID);
LimitFactory.setLimitPageAndRowAttr(limit,PAGE_SIZE,TOTAL_SIZE);
这里的TABLEID就是JSP页上标签的属性tableId, PAGE_SIZE是你一页的记录数,TOTAL_SIZE是你查询数据的总数
然后设置totalRow属性,它的值被要求为Integer类型的,转换一下:
request.setAttribute("totalRows",new Integer(TOTAL_SIZE));
将分页后的结果集(一页的内容)放到request的resultList(此为JSP中item属性设置的值)属性中去:
request.setAttribute("resultList", getTestData(limit.getCurrentRowsDisplayed(),limit.getPage()));
上面得到分页数据的函数原形为getTestData(int pageSize,int paget),通过指定一页的记录数和第几页来获得所需的数据,这可以根据数据库的分页特性,或者通过滑动游标的方式来得到,这里不再傲述.
以下为部分代码:
JSP部分:
Action部分代码:
这样就可以了,相信这也不是很难的东东吧,已经比较详细了,大家应该很容易看懂吧.
哦,对了,还有,标签里的rowDisplayed属性要和Action中的PAGE_SIZE一致,不然会有问题...