| 
1.Limit 默認(rèn)的情況下eXtremeTable取得所有的結(jié)果集然后處理Beans集合,這樣的好處是 你可以隨意進(jìn)行排序、過(guò)濾和分頁(yè)操作。
 你只需要組裝Beans集合并讓eXtremeTable知道如何 然而在查詢(xún)結(jié)果較大,可以考慮使用數(shù)據(jù)庫(kù)端分頁(yè)的方案。此時(shí),eXtremeTable
 會(huì)使用Limit對(duì)象向Action/Controller傳遞PageNo,PageSize,OrderBy等分頁(yè)信息。而服務(wù)端將向EC返回總記錄數(shù)和當(dāng)前頁(yè)的內(nèi)容。
 2.創(chuàng)建Limit 
 首先你需要通過(guò)LimitFactory得到一個(gè)Limit實(shí)例:
 
 代碼 
    Context context = new HttpServletRequestContext(request);         LimitFactory limitFactory = new TableLimitFactory(context);         Limit limit = new TableLimit(limitFactory);    Limit對(duì)象定義了limit結(jié)果集的所有方法。  TableLimitFactory具有另外一個(gè)構(gòu)造函數(shù),如果JSP頁(yè)面使用了兩個(gè)(以上)eXtremeTable的話(huà)你可以利用tableId分別傳輸totalRows,如果默認(rèn)tableId將為所有ec,。
     Context context = new HttpServletRequestContext(request); LimitFactory limitFactory = new TableLimitFactory(context, tableId);
 Limit limit = new TableLimit(limitFactory);
 設(shè)置行屬性:
 limit.setRowAttributes(totalRows, DEFAULT_ROWS_DISPLAYED); 3. 前臺(tái)jsp頁(yè)面中ec標(biāo)薟寫(xiě)法: 
 
 
 
 代碼 
    <ec:table          items="userlist"          var="u"          action="/pageAction.do"                  title="后臺(tái)用戶(hù)管理——管理用戶(hù)"          retrieveRowsCallback="limit"            width="80%"          rowsDisplayed="3"          form=""          >              <ec:row>              ...               ...                      </ec:row>      </ec:table>   使用callback需要做的唯一事情是傳輸集合到request,同時(shí)傳輸totalRows屬性。 totalRows表示總行數(shù), 
   
 代碼 
    request.setAttribute("userlist", userlist);          request.setAttribute("totalRows", new Integer(總記錄數(shù)));       4.實(shí)例: 本實(shí)例是ec結(jié)合Struts和Hibernate進(jìn)行分頁(yè).
 
 PageAction中的部分代碼:
 
 
 代碼 
    public ActionForward execute(ActionMapping mapping, ActionForm form,     HttpServletRequest request, HttpServletResponse response)           throws Exception {        UserDAO userDAO = (UserDAO) getBean("userDAO");         Limit limit = ExtremeTablePage.getLimit(request,defaultPageSize);        PageBean page = new PageBean();        page.setPageSize(limit.getCurrentRowsDisplayed());        page.setPage(limit.getPage());       List list = userDAO.findAllUser(page);        request.setAttribute("userlist", list);        request.setAttribute("totalRows", new Integer(page.getCount()));               return mapping.findForward("userlist");         }    Limit對(duì)象的實(shí)例化在ExtremeTablePage中 
   
 代碼 
    static public Limit getLimit(HttpServletRequest request,int defaultPageSize) {      Context context = new HttpServletRequestContext(request);      LimitFactory limitFactory = new TableLimitFactory(context);      TableLimit limit = new TableLimit(limitFactory);      limit.setRowAttributes(Integer.MAX_VALUE, defaultPageSize);      return limit;    }    PageBean類(lèi)部分代碼: 
   
 代碼 
    public class PageBean {         private int count = 0;         private int pageSize = 10;             private int pageCount = 0;             private int page = 1;             .             .             .             public int getCount() {                return count;            }          public void setCount(int count) {             if (pageSize != 0) {                pageCount = count / pageSize;             if (count % pageSize != 0) {                pageCount++;              }          }          this.count = count;         }             public int getPage() {           return page;         }        public void setPage(int page) {          this.page = page;        }        public int getPageCount() {         return pageCount;        }        public void setPageCount(int pageCount) {          this.pageCount = pageCount;       }        public int getPageSize() {          return pageSize;        }        public void setPageSize(int pageSize) {          this.pageSize = pageSize;        }     .     .     .    }   
dao層使用PageBean對(duì)象進(jìn)行查詢(xún)。    |