環境:JSF
文件:departments.jsp
<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>
文件:DepartmentList.java
public List getDepartments() {
Context context = new HttpServletRequestContext(getRequest());
LimitFactory limitFactory = new TableLimitFactory(context);
Limit limit = new TableLimit(limitFactory);
//int pageSize = limit.getCurrentRowsDisplayed();
//可能是一個bug,生成 limit 的時候,並沒有給 currentRowsDisplayed 賦值
int pageSize = limitFactory.getCurrentRowsDisplayed(0, 10);
FilterSet filter = limit.getFilterSet();
Page page = new PageHibernate(limit.getPage(), pageSize);
page.setFilters(FilterUtil.convert(filter));
page = departmentManager.getDepartments(page);
List list = page.getThisPageElements();
limit.setRowAttributes(page.getTotalNumberOfElements(), page.getPageSize());
getRequest().setAttribute("totalRows", new Integer(page.getTotalNumberOfElements()));
return list;
}
結果:
1.從limit中取不到pagesize,可能是一個bug,跟蹤TableLimit原碼,初始化的時候,並沒有給 currentRowsDisplayed 賦值
2.沒有顯示“最後一頁”,這個按鈕
3.不能導出excel文件,報錯:
There is no export defined. This commonly happens if you do not declare the export (Export or ExportTag) before the row and columns.