近日研究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 >
< 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就有最后一页了。怎么样?简单吧?呵呵。。。
其实,国内的网络复制率还是挺高的,也不知道是搜索引擎方便了我们,还是让我们更容易发现网络中的臃余结论;(