国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

J2EE實現分頁:Hibernate自定義標簽

開發 后端
本文通過例子講述了通用的分頁標簽實現。相信所有人都會覺得J2EE實現分頁相對于ASP.NET中處理分頁實在是一件很痛苦的事,本文代碼通過四個文件,一個action或Servlet,完成了在JSP頁面上的分頁。

關于分頁,網上看了很多文章,相信所有人都會覺得J2EE中實現分頁相對于ASP.NET中處理分頁實在是一件很痛苦的事..

下面就結合我做的例子說明一下通用的分頁標簽實現.

先說明一下J2EE實現分頁所需要用到的文件Pager.java (不用說,肯定是保存分頁信息的了),PagerHelper.java(處理頁面信息) ,PageTag.java(自定義分頁標簽),還有一個是pagetag.tld文件,分頁標簽描述文件.

先帖出這四個文件的源碼

1、Pager.java

  1. package org.awc.commns;  
  2.  
  3. /**  
  4. * 保存分頁信息的類  
  5.  
  6. * @author Administrator  
  7.  
  8. */ 
  9. public class Pager {  
  10. private int totalRows; // 總行數  
  11.  
  12. private int pageSize; // 每頁顯示的行數  
  13.  
  14. private int currentPage; // 當前頁號  
  15.  
  16. private int totalPages; // 總頁數  
  17.  
  18. private int startRow; // 當前頁在數據庫中的起始行  
  19.  
  20. private String linkUrl; // 要跳轉的URL  
  21.  
  22. public Pager() {  
  23. }  
  24.  
  25. public Pager(int _totalRows,int _pageSize) {  
  26.    totalRows = _totalRows;  
  27.    pageSize = _pageSize;  
  28.    totalPages = totalRows / pageSize;  
  29.    int mod = totalRows % pageSize;  
  30.    if (mod > 0) {  
  31.     totalPages++;  
  32.    }  
  33.    currentPage = 1;  
  34.    startRow = 0;  
  35. }  
  36.  
  37. //此處略去屬性的getter和setter方法  
  38.  
  39.    /**  
  40. * 設定hibernate查詢的起始行數  
  41.  
  42. * @param currentPage  
  43. */ 
  44.  
  45. public void setStart(int currentPage) {  
  46.    this.currentPage = currentPage;  
  47.    startRow = (currentPage - 1) * pageSize;  
  48. }  
  49. }  

2、PagerHelper.java

  1. import javax.servlet.http.*;  
  2.  
  3. /**  
  4. * 控制分頁的類  
  5.  
  6. * @author Administrator  
  7.  
  8. */ 
  9. public class PagerHelper {  
  10.  
  11. public static Pager getPager(HttpServletRequest httpServletRequest,  
  12.     int totalRows,int pageSize) {  
  13.  
  14.    // 定義pager對象,用于傳到頁面  
  15.    Pager pager = new Pager(totalRows,pageSize);  
  16.  
  17.    // 從Request對象中獲取當前頁號  
  18.    String currentPage = httpServletRequest.getParameter("cpage");  
  19.  
  20.    // 如果當前頁號為空,表示為***查詢該頁  
  21.    // 如果不為空,則刷新pager對象,輸入當前頁號等信息  
  22.    if (currentPage != null) {  
  23.     pager.setStart(Integer.parseInt(currentPage));  
  24.    }  
  25.    else {  
  26.     pager.setStart(1);  
  27.    }  
  28.     
  29.    return pager;  
  30. }  
  31. }  

3、PageTag.java

  1. import java.io.IOException;  
  2.  
  3. import javax.servlet.jsp.JspWriter;  
  4. import javax.servlet.jsp.tagext.TagSupport;  
  5.  
  6. public class PageTag extends TagSupport {  
  7. /**  
  8.  
  9. */ 
  10. private static final long serialVersionUID = 1L;  
  11.  
  12. private Pager pager;  
  13.  
  14. public int doStartTag() {  
  15.    try {  
  16.     JspWriter out = pageContext.getOut();  
  17.  
  18.     out.print("第 " + pager.getCurrentPage() + " 頁/共 " 
  19.       + (pager.getTotalPages()) + " 頁");  
  20.  
  21.     if (pager.getCurrentPage() == 1) {  
  22.      out.print("[最首頁]");  
  23.      out.print("[上一頁]");  
  24.     }  
  25.     if (pager.getCurrentPage() != 1) {  
  26.      out.print("[< a href='" + pager.getLinkUrl()  
  27.        + "&cpage=1'>最首頁< /a>]");  
  28.      out.print("[< a href='" + pager.getLinkUrl() + "&cpage=" 
  29.        + (pager.getCurrentPage() - 1) + "'>上一頁< /a>]");  
  30.     }  
  31.  
  32.     for (int i = pager.getCurrentPage() - 3; i < = pager  
  33.       .getCurrentPage() + 3; i++) {  
  34.      if (i < = 0 || i > pager.getTotalPages()) {  
  35.       continue;  
  36.      }  
  37.      if (i == pager.getCurrentPage()) {  
  38.       out  
  39.         .print("[< span style='color:#FF0000; border: 1px solid #cccccc; font-weight:bold; width:15px;text-align: center;'> " 
  40.           + i + " < /span>]");  
  41.      } else {  
  42.       out.print("[< a href='" + pager.getLinkUrl() + "&cpage=" + i  
  43.         + "'> " + i + " < /a>]");  
  44.      }  
  45.     }  
  46.     if (pager.getCurrentPage() == pager.getTotalPages()  
  47.       || pager.getTotalPages() == 0) {  
  48.      out.print("[下一頁]");  
  49.      out.print("[最末頁]");  
  50.  
  51.     }  
  52.     if (pager.getCurrentPage() != pager.getTotalPages()  
  53.       && pager.getTotalPages() != 0) {  
  54.      out.print("[< a href='" + pager.getLinkUrl() + "&cpage=" 
  55.        + (pager.getCurrentPage() + 1) + "'>下一頁< /a>]");  
  56.      out.print("[< a href='" + pager.getLinkUrl() + "&cpage=" 
  57.        + (pager.getTotalPages()) + "'>最末頁< /a>]");  
  58.     }  
  59.     out.flush();  
  60.    } catch (IOException ex) {  
  61.     ex.printStackTrace();  
  62.    }  
  63.    return super.SKIP_BODY;  
  64. }  
  65.  
  66. public int doEndTag() {  
  67.    return super.EVAL_PAGE;  
  68. }  
  69.  
  70. public void setPager(Pager pager) {  
  71.    this.pager = pager;  
  72. }  
  73.  
  74. public Pager getPager() {  
  75.    return pager;  
  76. }  
  77. }  

4、pagetag.tld

  1. < !DOCTYPE taglib  
  2. PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"  
  3.    "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"> 
  4. < taglib xmlns="http://java.sun.com/JSP/TagLibraryDescriptor"> 
  5. < tlib-version>1.0< /tlib-version> 
  6. < jsp-version>1.2< /jsp-version> 
  7. < short-name>My Tags< /short-name> 
  8. < tag> 
  9.     < name>page< /name> 
  10.     < tag-class>org.awc.commns.PageTag< /tag-class>< !-- PageTag.java具體項目路徑--> 
  11.     < body-content>empty< /body-content> 
  12.     < attribute> 
  13.       < name>pager< /name> 
  14.       < required>true< /required> 
  15.       < rtexprvalue>true< /rtexprvalue> 
  16.       < type>org.awc.commns.Pager< /type>< !-- Pager.java具體項目路徑--> 
  17.     < /attribute> 
  18. < /tag> 
  19. < /taglib> 

以上四個文件為固定,其余部分代碼示例如下:

Action或者Servlet部分:

  1. public ActionForward display(ActionMapping mapping, ActionForm form,  
  2.     HttpServletRequest request, HttpServletResponse response) {  
  3. //不相關代碼略去  
  4.    int totalRows;// 記錄總行數  
  5.    Pager pager = null// 頁面信息  
  6.    int pageSize = 15;  
  7.    try {  
  8.     totalRows = tservice.getTotalRowsBySubType(tsid); // 獲取指定主題總行數  
  9.     pager = PagerHelper.getPager(request, totalRows, pageSize); // 初始化分頁對象  
  10.     pager.setLinkUrl("index.asp?method=display&stid=" + tsid); // 設置跳轉路徑  
  11.     request.setAttribute("pb", pager); // 將分頁信息保存在Request對象  
  12.  
  13.     topicList = tservice.findTopicByStid(tsid, pager); // 根據分頁信息查詢指定的主題  
  14.     request.setAttribute("results", topicList);  
  15.     return mapping.findForward("index");  
  16.    } catch (Exception e) {  
  17.     // TODO Auto-generated catch block  
  18.     e.printStackTrace();  
  19.    }  
  20.    return mapping.findForward("fail");  
  21. }  

JSP 頁面部分:

1、在頁面開始部分導入標簽庫文件 :< %@ taglib prefix="page" uri="WEB-INF/pageTld/pagetag.tld"%> --具體路徑視具體項目而定

2、在需要加入分頁信息的部分加上< page:page pager="${pb}" /> 即可。

這樣就在J2EE中實現了分頁功能。

【編輯推薦】

  1. Hibernate中使用Criteria查詢實例
  2. Hibernate中使用DetchedCriteria
  3. Hibernate之Criteria進階查詢
  4. Hibernate之Criteria基本查詢
  5. Criteria查詢語句的補充:高級特性
責任編輯:book05 來源: 百度博客
相關推薦

2009-06-16 13:27:59

Hibernate x

2009-06-16 11:14:00

Hibernate+SJ2EE應用開發

2009-06-23 08:06:46

J2EE體系架構J2EE模型J2EE設計模式

2009-06-10 14:10:23

J2EE學習J2EE是什么

2009-06-11 17:06:11

J2EE歷史Java EE概述

2009-06-10 13:37:06

J2EE可伸縮性J2EE靈活性J2EE維護

2009-06-23 16:48:26

J2EE常見問題J2EE平臺

2009-06-22 17:05:41

Java EEJava企業應用

2009-06-22 17:34:40

J2EE架構

2009-06-23 08:12:48

J2EE調用存儲過程

2009-06-18 15:54:57

J2EE下使用JNDI

2009-06-22 16:21:02

J2EE線程

2009-06-18 16:13:14

J2EE開發

2013-05-28 11:29:19

struts2

2009-06-19 17:03:44

J2EE學習

2009-02-23 11:18:06

J2EE架構師Java

2011-05-16 14:07:58

J2EE

2009-06-11 17:19:47

J2EE設計模式Template

2009-06-22 11:04:00

Jdbc存儲過程

2009-06-11 17:11:07

J2EE設計模式工廠模式
點贊
收藏

51CTO技術棧公眾號

欧洲国内综合视频| 69堂成人精品视频免费| 黄色精品在线观看| 亚洲在线成人精品| 亚洲一级免费观看| 26uuu成人网一区二区三区| 日本三日本三级少妇三级66| 亚洲视频播放| 91网免费观看| 亚洲美女视频| 国产精品美女久久久免费| 爱爱精品视频| 欧美巨乳美女视频| 国产亚洲精aa在线看| y97精品国产97久久久久久| 制服丝袜专区在线| 欧美精品一区二区三区很污很色的| 黄黄的网站在线观看| 欧美一区二区久久| aa级大片免费在线观看| 日韩精品中文字幕在线| 亚洲黄色网址在线观看| 电影一区中文字幕| 中文字幕久久精品| gogogogo高清视频在线| 久久久久久毛片| 精品国产乱码久久久久久88av| 欧洲成人免费视频| 免费看电影在线| 亚洲精品乱码久久久久久金桔影视 | 男人资源网站| 中文字幕日韩精品一区| 国产专区中文字幕| 午夜精品久久久久久不卡8050| 欧美日韩伦理片| 欧美一二三区在线| 午夜欧美激情| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产一精品一av一免费爽爽| 韩国国内大量揄拍精品视频| 亚洲理论电影| 91久久伊人青青碰碰婷婷| 久久精品动漫| 999在线观看视频| 一卡二卡欧美日韩| 69视频在线| 一区二区三区动漫| 国产va免费精品观看精品视频| 成人资源视频网站免费| 国精品**一区二区三区在线蜜桃| 久久美女福利视频| 黄网动漫久久久| 久色国产在线| 久久久久久成人精品| 中文字幕一区二区三三| 亚洲免费av网| 亚洲柠檬福利资源导航| 毛片在线视频| 日韩在线免费高清视频| 99精品全国免费观看视频软件| 日韩欧美精品在线不卡| 在线免费视频a| 午夜一区二区三区视频| 欧美videos另类精品| 亚洲国产精品一区二区久| 国产精品专区免费| 欧美第一黄色网| 中文字幕在线中文字幕日亚韩一区| 蜜乳av一区二区三区| 免费毛片小视频| 亚洲三级电影| 国产综合色香蕉精品| 国产乱码精品一品二品| 亚洲成人影院少妇| 日韩在线观看免费全集电视剧网站| 欧美+日本+国产+在线a∨观看| 97超碰在线视| 亚洲午夜电影在线| 免费看av不卡| 91免费版黄色| 中文乱码免费一区二区 | 欧美国产精品v| 新版中文在线官网| 国产成人精品av在线| 国产精品一区二区在线播放| av免费播放| 亚洲精品v欧美精品v日韩精品| 欧美色就是色| 日本福利视频在线| 日韩视频一区二区三区| 日韩精品久久久久久久电影99爱| 日韩一级性生活片| 日韩三级在线观看| 欧美福利视频| 大陆一级毛片| 欧美成人久久久| 国内精品在线播放| 国产精品久久久久久福利| 成人国内精品久久久久一区| 久久久久九九视频| 欧美成人性网| 日韩高清av电影| 欧美四级电影网| 97人人精品| 婷婷福利视频导航| 欧美激情综合色综合啪啪五月| 国产一区二区三区久久久| fc2ppv国产精品久久| 亚洲a∨日韩av高清在线观看| 亚洲人精品午夜| 日本在线看片免费人成视1000| 91色p视频在线| 亚洲人成电影网站色xx| 国产乱码精品一品二品| 国产精品伦理| 欧美1819sex性处18免费| 热99精品里视频精品| 永久www成人看片| 91香蕉电影院| 欧美黑人性猛交| 国产剧情在线观看| 国产在线拍偷自揄拍精品| 综合电影一区二区三区| 日韩在线精品强乱中文字幕| 久久久999视频| 中文字幕在线视频日韩| 国产成人av影院| 国产日韩电影| japanese在线播放| 揄拍成人国产精品视频| 丁香婷婷综合激情五月色| 国产亚洲精品精品国产亚洲综合| 2022中文字幕| 精品国产一区二区三区四区在线观看 | 国内自拍欧美| 国产视频1区2区3区| 午夜精品视频网站| 国产精品久久久久久久久免费樱桃 | 亚洲第一综合| 日韩av在线看| 粉嫩av一区二区三区| 久久国产三级| www.com操| 日韩免费在线免费观看| 欧美日韩一区二区在线| 黑丝一区二区三区| 18网站在线观看| 伊人再见免费在线观看高清版 | 成人h动漫精品一区二| 91精品国产综合久久久久久| 亚洲精品免费播放| 一本到不卡精品视频在线观看 | 一区二区三区视频在线看| 国产欧美欧美| 97激碰免费视频| 亚洲老头老太hd| 亚洲国产欧美久久| 免费在线黄色网址| 国产一区视频观看| 亚洲福利在线播放| 99国产精品久久久久| 精品福利一区| 亚洲最大黄色| 老牛影视免费一区二区| 国产一区二区三区在线视频 | 久久久久久久久久久久久9999| 亚洲成人精品久久久| 91麻豆精品在线观看| 国产日产精品一区二区三区四区的观看方式| 亚洲kkk444kkk在线观看| 欧美日韩精品免费看| 在线精品国产欧美| 伊人开心综合网| 久久精品麻豆| 日本在线成人| 成人p站proumb入口| www.在线观看av| 国产精品爽黄69天堂a| 欧美videossexotv100| 中文字幕精品—区二区四季| 伊人久久亚洲热| 88xx成人永久免费观看| 免费av网页| 日本特级黄色大片| 国产精品日韩久久久久| 亚洲精品福利资源站| 伊人色综合久久天天| 狠狠色丁香婷综合久久| 日韩国产专区| 欧美日韩女优| h视频在线播放| 黄色三级视频片| 麻豆av一区| 欧美在线视频在线播放完整版免费观看| 欧美高清你懂得| 国产精品卡一卡二卡三| 日本不卡中文字幕| 国产精品福利在线观看播放| 亚洲精品无播放器在线播放| 91在线直播|