欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一個通用的Java分頁基類代碼詳解

 更新時間:2017年12月20日 15:07:04   作者:wgd7  
這篇文章主要介紹了一個通用的Java分頁基類代碼詳解,具有一定借鑒價值,需要的朋友可以參考下。

分頁的基類

import java.util.List;
/**
 * 分頁顯示的標(biāo)準(zhǔn)類,基本操作,是先給予-當(dāng)前頁數(shù)一共的數(shù)據(jù)條數(shù)-每頁顯示的條數(shù),
 * 然后在初始化該類,得到總共頁數(shù),和開始序號和結(jié)束序號,
 * 然后數(shù)據(jù)庫分頁用到開始序號和結(jié)束序號,得到數(shù)據(jù)集合后賦值給該類的list屬性,
 * 
 * 然后把該類發(fā)送到j(luò)sp頁面,進(jìn)行訪問
 * @author admin
 *
 * @param <T>
 */
public class PageBean<T> {
	private int pageIndex;
	//當(dāng)前頁數(shù)
	private int pageSize;
	//一共的頁數(shù)
	private int count;
	//數(shù)據(jù)條數(shù)
	private int pageCount;
	//每頁的數(shù)據(jù)條數(shù)
	private int start;
	//起始數(shù)據(jù)位置
	private int end;
	//結(jié)束
	private List<T> list=null;
	public void init(){
		/*根count 和pageCount計(jì)算頁數(shù)pageSize
     */
		int pageSize_x=(int)count/pageCount;
		if(count>=pageCount){
			this.pageSize=count%pageCount==0?pageSize_x:pageSize_x+1;
		} else{
			this.pageSize=1;
		}
		//判斷頁數(shù)和當(dāng)前頁數(shù)
		if(pageIndex>pageSize){
			pageIndex=pageSize;
		}
		if(pageIndex<1){
			pageIndex=1;
		}
		//根據(jù)當(dāng)前頁計(jì)算起始和結(jié)束條目
		this.start=(pageIndex-1)*pageCount+1;
		this.end=pageIndex*pageCount;
	}
	public PageBean(int pageIndex, int count, int pageCount) {
		super();
		this.pageIndex = pageIndex;
		this.count = count;
		this.pageCount = pageCount;
	}
	public PageBean(int pageIndex, int count, int pageCount, List<T> list) {
		super();
		this.pageIndex = pageIndex;
		this.count = count;
		this.pageCount = pageCount;
		this.list = list;
	}
	public PageBean() {
		super();
		// TODO Auto-generated constructor stub
	}
	@Override
	  public String toString() {
		return "PageBean [count=" + count + ", end=" + end + ", list=" + list
		        + ", pageCount=" + pageCount + ", pageIndex=" + pageIndex
		        + ", pageSize=" + pageSize + ", start=" + start + "]";
	}
	public int getPageIndex() {
		return pageIndex;
	}
	public void setPageIndex(int pageIndex) {
		this.pageIndex = pageIndex;
	}
	public int getPageSize() {
		return pageSize;
	}
	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}
	public int getCount() {
		return count;
	}
	public void setCount(int count) {
		this.count = count;
	}
	public int getPageCount() {
		return pageCount;
	}
	public void setPageCount(int pageCount) {
		this.pageCount = pageCount;
	}
	public int getStart() {
		return start;
	}
	public void setStart(int start) {
		this.start = start;
	}
	public int getEnd() {
		return end;
	}
	public void setEnd(int end) {
		this.end = end;
	}
	public List<T> getList() {
		return list;
	}
	public void setList(List<T> list) {
		this.list = list;
	}
}

servlet調(diào)用

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.dao.MessageDao;
import com.dao.impl.MessageDaoImpl;
import com.vo.Message;
import com.vo.PageBean;
public class ShowMessageServlet extends HttpServlet{
	/**
   * 
   */
	private static final long serialVersionUID = 6646899131087204214L;
	@Override
	  protected void doPost(HttpServletRequest req, HttpServletResponse resp)
	      throws ServletException, IOException {
		doGet(req, resp);
	}
	@Override
	  protected void doGet(HttpServletRequest req, HttpServletResponse resp)
	      throws ServletException, IOException {
		req.setCharacterEncoding("UTF-8");
		resp.setContentType("text/html;charset=utf-8");
		int pageIndex=0;
		MessageDao md=new MessageDaoImpl();
		String pageIndexStr=req.getParameter("pageIndex");
		if(pageIndexStr!=null){
			try{
				pageIndex=Integer.parseint(pageIndexStr);
			}
			catch (Exception e) {
			}
		}
		PageBean<Message> pb=new PageBean<Message>(pageIndex,md.getMessageCount(),10);
		pb.init();
		pb.setList(md.getMessageListOfPage(pb.getStart(), pb.getEnd()));
		req.setAttribute("pagebean", pb);
		req.getRequestDispatcher("index.jsp").forward(req, resp);
	}
}

jsp頁面的顯示調(diào)用

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <base href="<%=basePath%>" rel="external nofollow" >

  <title>My JSP 'index.jsp' starting page</title>
  <meta http-equiv="pragma" content="no-cache">
  <meta http-equiv="cache-control" content="no-cache">
  <meta http-equiv="expires" content="0">  
  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  <meta http-equiv="description" content="This is my page">
  <!--
  <link rel="stylesheet" type="text/css" href="styles.css" rel="external nofollow" >
  -->
 </head>
 <c:if test="${empty pagebean}">
  <jsp:forward page="showmessage"></jsp:forward>
 </c:if>
 <body>
  <c:forEach var="message" items="${pagebean.list}">
    ${message.title }  ${message.editdate }<br/>
  </c:forEach>
  <a href="showmessage?pageIndex=${pagebean.pageIndex+1}" rel="external nofollow" >下一個</a>[${pagebean.pageIndex }<span>/</span>${pagebean.pageSize}]
 </body>
</html>

總結(jié)

以上就是本文關(guān)于一個通用的Java分頁基類代碼詳解的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他Java相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關(guān)文章

  • Java打印出所有的水仙花數(shù)的實(shí)現(xiàn)代碼

    Java打印出所有的水仙花數(shù)的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Java打印出所有的水仙花數(shù)的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2017-02-02
  • Gateway網(wǎng)關(guān)自定義攔截器的不可重復(fù)讀取數(shù)據(jù)問題

    Gateway網(wǎng)關(guān)自定義攔截器的不可重復(fù)讀取數(shù)據(jù)問題

    這篇文章主要介紹了Gateway網(wǎng)關(guān)自定義攔截器的不可重復(fù)讀取數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Java Collection集合用法詳解

    Java Collection集合用法詳解

    首先Collection是屬于單列集合的頂層接口,表示為一組對象。其類型為引用數(shù)據(jù)類型,具體創(chuàng)建對象,通過多態(tài)的形式進(jìn)行,本文將給大家詳細(xì)的介紹,需要的朋友可以參考下
    2021-10-10
  • Java單鏈表基本操作的實(shí)現(xiàn)

    Java單鏈表基本操作的實(shí)現(xiàn)

    鏈表是一種數(shù)據(jù)結(jié)構(gòu),和數(shù)組同級。接下來通過本文給大家介紹Java單鏈表基本操作的實(shí)現(xiàn),非常不錯,具有參考借鑒價值,感興趣的朋友一起看下吧
    2016-07-07
  • JVM內(nèi)存模型知識點(diǎn)總結(jié)

    JVM內(nèi)存模型知識點(diǎn)總結(jié)

    在本篇文章里小編給大家分享了關(guān)于JVM內(nèi)存模型的學(xué)習(xí)心得以及相關(guān)知識點(diǎn)總結(jié),有興趣的朋友們跟著學(xué)習(xí)下。
    2019-05-05
  • Java中Cglib代理類重寫邏輯詳解

    Java中Cglib代理類重寫邏輯詳解

    這篇文章主要介紹了Java中Cglib代理類重寫邏輯詳解,代理類中只會維護(hù)NoOp這個回調(diào)屬性,并不會生成目標(biāo)類MyService中的noOp所對應(yīng)的方法,需要的朋友可以參考下
    2023-11-11
  • java多線程編程學(xué)習(xí)(線程間通信)

    java多線程編程學(xué)習(xí)(線程間通信)

    下面小編就為大家?guī)硪黄猨ava多線程編程學(xué)習(xí)(線程間通信)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • SpringMVC 中文亂碼的解決方案

    SpringMVC 中文亂碼的解決方案

    這篇文章主要介紹了SpringMVC 中文亂碼的解決方案,幫助大家更好的理解和學(xué)習(xí)使用SpringMVC,感興趣的朋友可以了解下
    2021-04-04
  • 詳談Enumeration接口和Iterator接口的區(qū)別

    詳談Enumeration接口和Iterator接口的區(qū)別

    下面小編就為大家?guī)硪黄斦凟numeration接口和Iterator接口的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • Spring Boot與Docker部署實(shí)踐

    Spring Boot與Docker部署實(shí)踐

    這篇文章主要介紹了Spring Boot與Docker部署實(shí)踐,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05

最新評論