小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

ET Limit方式的分頁(yè)查詢(xún) AJAX AJAX

 funronglei 2006-12-09

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í)例:


代碼
  1. Context context = new HttpServletRequestContext(request);   
  2.       LimitFactory limitFactory = new TableLimitFactory(context);   
  3.       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ě)法:


代碼
  1. <ec:table  
  2.         items="userlist"  
  3.         var="u"  
  4.         action="/pageAction.do"          
  5.         title="后臺(tái)用戶(hù)管理——管理用戶(hù)"  
  6.         retrieveRowsCallback="limit"    
  7.         width="80%"  
  8.         rowsDisplayed="3"  
  9.         form=""  
  10.         >      
  11.         <ec:row>  
  12.             ...   
  13.             ...              
  14.         </ec:row>  
  15.     </ec:table>  

使用callback需要做的唯一事情是傳輸集合到request,同時(shí)傳輸totalRows屬性。 totalRows表示總行數(shù),

 

代碼
  1. request.setAttribute("userlist", userlist);   
  2.        request.setAttribute("totalRows"new Integer(總記錄數(shù)));  

 

 

4.實(shí)例:
本實(shí)例是ec結(jié)合Struts和Hibernate進(jìn)行分頁(yè).

PageAction中的部分代碼:

代碼
  1. public ActionForward execute(ActionMapping mapping, ActionForm form,   
  2.   HttpServletRequest request, HttpServletResponse response)   
  3.         throws Exception {   
  4.      UserDAO userDAO = (UserDAO) getBean("userDAO");    
  5.      Limit limit = ExtremeTablePage.getLimit(request,defaultPageSize);   
  6.      PageBean page = new PageBean();   
  7.      page.setPageSize(limit.getCurrentRowsDisplayed()); //ec通過(guò)limit對(duì)象傳遞pageSize給PageBean   
  8.      page.setPage(limit.getPage());//ec通過(guò)limit對(duì)象傳遞pageNo給PageBean   
  9.      List list = userDAO.findAllUser(page);   
  10.      request.setAttribute("userlist", list);   
  11.      request.setAttribute("totalRows"new Integer(page.getCount()));   
  12.        
  13.      return mapping.findForward("userlist");   
  14.      
  15.  }   

Limit對(duì)象的實(shí)例化在ExtremeTablePage中

 

代碼
  1. static public Limit getLimit(HttpServletRequest request,int defaultPageSize) {   
  2.    Context context = new HttpServletRequestContext(request);   
  3.    LimitFactory limitFactory = new TableLimitFactory(context);   
  4.    TableLimit limit = new TableLimit(limitFactory);   
  5.    limit.setRowAttributes(Integer.MAX_VALUE, defaultPageSize);   
  6.    return limit;   
  7.  }   


PageBean類(lèi)部分代碼:

 

代碼
  1. public class PageBean {   
  2.       private int count = 0// 記錄總數(shù)   
  3.       private int pageSize = 10// 每頁(yè)顯示記錄數(shù)   
  4.           private int pageCount = 0// 總頁(yè)數(shù)   
  5.           private int page = 1// 當(dāng)前頁(yè)數(shù)   
  6.           .   
  7.           .   
  8.           .   
  9.           public int getCount() {   
  10.              return count;   
  11.          }   
  12.        public void setCount(int count) {   
  13.           if (pageSize != 0) {   
  14.              pageCount = count / pageSize;   
  15.           if (count % pageSize != 0) {   
  16.              pageCount++;   
  17.            }   
  18.        }   
  19.        this.count = count;   
  20.       }   
  21.     
  22.       public int getPage() {   
  23.         return page;   
  24.       }   
  25.      public void setPage(int page) {   
  26.        this.page = page;   
  27.      }   
  28.      public int getPageCount() {   
  29.       return pageCount;   
  30.      }   
  31.      public void setPageCount(int pageCount) {   
  32.        this.pageCount = pageCount;   
  33.     }   
  34.      public int getPageSize() {   
  35.        return pageSize;   
  36.      }   
  37.      public void setPageSize(int pageSize) {   
  38.        this.pageSize = pageSize;   
  39.      }   
  40.   .   
  41.   .   
  42.   .   
  43.  }  
dao層使用PageBean對(duì)象進(jìn)行查詢(xún)。
 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多