国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JSP > 正文

JSP分頁(yè)顯示如何實(shí)現(xiàn)

2019-11-02 15:50:33
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

 1、mysql的limit關(guān)鍵字 (DAO)

  select * from tablename limit startPoint, numberPerPage;

  tablename 就是要分頁(yè)顯示的那張表的名稱;

  startPoint 就是起始的位置 -1;

  numberPerPage 就是一頁(yè)顯示的條數(shù)。

  例如: select * from comment limit 20,5;

  則是從comment表中抽取21~25號(hào)評(píng)論:

  

JSP分頁(yè)顯示如何實(shí)現(xiàn) 三聯(lián)

  2、jQuery load函數(shù) (頁(yè)面JS)

  MySQL的limit關(guān)鍵字可以完成抽取一定范圍(n,n+m]的記錄,也就是說(shuō)需要兩個(gè)參數(shù)來(lái)決定某一頁(yè)顯示的內(nèi)容,即“第x頁(yè)”以及每頁(yè)顯示的個(gè)數(shù)。

  每頁(yè)顯示的個(gè)數(shù)可以在程序中設(shè)定,也可以由用戶設(shè)定。但,“第x頁(yè)”這個(gè)參數(shù)一定是用戶給出的。當(dāng)用戶點(diǎn)擊頁(yè)數(shù)、下一頁(yè)/上一頁(yè)按鈕或跳轉(zhuǎn)至某頁(yè)時(shí),需要將這個(gè)“第x頁(yè)”參數(shù)傳送給服務(wù)器,以便進(jìn)行記錄的抽取。

  function goToPage(page){

  $('body').load("getComments.do?page=" + page);

  }

  或者,兩個(gè)參數(shù)都由用戶指定的話,函數(shù)可以寫成:

  function goToPage(page, numberPerPage){

  $('body').load("getComments.do?page=" + page + "&npp=" + numberPerPage);

  }

 

  3、servlet接收參數(shù)并組織內(nèi)容 (servlet文件)

  servlet通過(guò)接受jsp頁(yè)面?zhèn)鱽?lái)的request對(duì)象中的page和npp參數(shù)來(lái)獲悉用戶希望瀏覽第X頁(yè),以及一頁(yè)顯示多少條記錄。

  int page = Integer.parseInt(req.getParameter("page"));

 

  4、servlet計(jì)算顯示的頁(yè)數(shù)列表

  一般一次顯示10頁(yè)左右,也就是假如現(xiàn)在在第52頁(yè),那么可選的頁(yè)數(shù)列表就是50、51、52。。。直到60.

  計(jì)算的方法是,假設(shè)現(xiàn)在處于x頁(yè),那么起始值為x/10*10,前提是x>10。寫成代碼就是:

  int start = 1;

  if(page >= 10){

  start = page/10 * 10;

  }

  有兩個(gè)特殊情況:

  ① 總共的頁(yè)數(shù)不足10個(gè)

  ② 頁(yè)數(shù)不是10的整倍數(shù)

  這樣會(huì)出現(xiàn)頁(yè)數(shù)列表小于10的情況,也很容易處理,加if條件判斷一下就好了。大致的代碼如下:

  int total = sm.getCommentCount();

  int totalPage = total/itemsPerPage;

  if(total % itemsPerPage != 0){

  totalPage += 1;

  }

  Vector<Integer> pageArr = new Vector<Integer>();

  int start = 1;

  if(page >= 10){

  start = page/10 * 10;

  }

  int num = start;

  while(!(num > totalPage || num > start + 10)){

  pageArr.add(new Integer(num));

  ++num;

  }

  5、在jsp頁(yè)面顯示頁(yè)數(shù)列表

  通過(guò)4我們得到了一個(gè)計(jì)算后的頁(yè)數(shù)列表pageArr,該列表說(shuō)明針對(duì)當(dāng)前頁(yè),我們應(yīng)該展現(xiàn)哪些頁(yè)數(shù)讓用戶可以直接點(diǎn)擊。在servlet中將剛才的pageArr列表放入response對(duì)象中,同時(shí)放入page(當(dāng)前頁(yè)數(shù))以及totalPage(最大頁(yè)數(shù))以幫助我們做一些判斷。

  <!- - 上一頁(yè) 按鈕 -->

  <div id="pageControl">

  <c:choose>

  <c:when test="${page != 1}">

  <a href="checkComments.do?page=${page-1}"><in put type="button" name="lastPage" value="上一頁(yè)" /></a>

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 叶城县| 阳谷县| 东宁县| 个旧市| 宁津县| 英吉沙县| 凤台县| 土默特左旗| 霍城县| 阿坝| 彭水| 山丹县| 永定县| 湟源县| 仙游县| 利辛县| 光山县| 鄂尔多斯市| 揭西县| 大港区| 吉林省| 定陶县| 黔南| 稻城县| 巴塘县| 汝南县| 奈曼旗| 建水县| 象州县| 兴安盟| 儋州市| 大化| 政和县| 阳东县| 山西省| 襄城县| 桐庐县| 文昌市| 东丰县| 怀仁县| 河津市|