近日研究eXtremeComponents的Limit 分页,按照网络上众多教程学习后,发现只有下一页没有最后一页,困惑许久。
后来对eXtremeComponents 的API仔细研究后发现,网络上提供的大部分教程都是不能直接使用的,在一些最最关键但不容易发现的地方给你弄点小bug,其实仔细想想,人家做eXtremeComponents的不至于傻到做分页的,在分页的用的最多的地方弄个小bug的地步。所以就应该仔细想想。
这里做个记录吧。
其实很简单,如果你的也没有最后一页,按这个做就可以了
视图层都一样,这里只举个例子,主要为大家说明下面action层(Spring里面是Connenter层)。
<f:view>
<f:loadBundle var="text" basename="#{departmentList.bundleName}"/>
<h:form id="editDepartment">
<ec:table
items="departmentList.departments"
action="${pageContext.request.contextPath}/hr/departments.html"
imagePath="${pageContext.request.contextPath}/images/table/*.gif"
title="${text['userList.title']}"
rowsDisplayed="10"
form="editDepartment" var="department"
retrieveRowsCallback="limit"
filterRowsCallback="limit"
sortRowsCallback="limit"
view="limit"
autoIncludeParameters="false">
<ec:row highlightRow="true">
<ec:column title="${text['department.name']}" property="name"/>
</ec:row>
</ec:table>
</h:form>
</f:view>
网络上提供的绝大部分代码中对Action里面要设置的一个重要参数都是这么写的
getRequest().setAttribute("totalRows", new Integer(page.getTotalNumberOfElements()));
改为
getRequest().setAttribute("departmentList.departments_"+"totalRows", new Integer(page.getTotalNumberOfElements()));
这样您的eXtremeComponents就有最后一页了。怎么样?简单吧?呵呵。。。
其实,国内的网络复制率还是挺高的,也不知道是搜索引擎方便了我们,还是让我们更容易发现网络中的臃余结论;(