一個(gè)通用的Java分頁基類代碼詳解
分頁的基類
import java.util.List;
/**
* 分頁顯示的標(biāo)準(zhǔn)類,基本操作,是先給予-當(dāng)前頁數(shù)一共的數(shù)據(jù)條數(shù)-每頁顯示的條數(shù),
* 然后在初始化該類,得到總共頁數(shù),和開始序號(hào)和結(jié)束序號(hào),
* 然后數(shù)據(jù)庫分頁用到開始序號(hào)和結(jié)束序號(hào),得到數(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" >下一個(gè)</a>[${pagebean.pageIndex }<span>/</span>${pagebean.pageSize}]
</body>
</html>
總結(jié)
以上就是本文關(guān)于一個(gè)通用的Java分頁基類代碼詳解的全部內(nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他Java相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
- java分頁工具類的使用方法
- Java分頁工具類及其使用(示例分享)
- 淺談java分頁三個(gè)類 PageBean ResponseUtil StringUtil
- java分頁攔截類實(shí)現(xiàn)sql自動(dòng)分頁
- Java Web 簡(jiǎn)單的分頁顯示實(shí)例代碼
- Java簡(jiǎn)單實(shí)現(xiàn)SpringMVC+MyBatis分頁插件
- 舉例詳解用Java實(shí)現(xiàn)web分頁功能的方法
- 使用Jquery+Ajax+Json如何實(shí)現(xiàn)分頁顯示附JAVA+JQuery實(shí)現(xiàn)異步分頁
- java中利用List的subList方法實(shí)現(xiàn)對(duì)List分頁(簡(jiǎn)單易學(xué))
- jsp+servlet+javabean實(shí)現(xiàn)數(shù)據(jù)分頁方法完整實(shí)例
- Java實(shí)現(xiàn)的分頁工具類與用法示例
相關(guān)文章
詳解如何把Java中if-else代碼重構(gòu)成高質(zhì)量代碼
這篇文章主要介紹了詳解如何把Java中if-else代碼重構(gòu)成高質(zhì)量代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
Springboot跨域CORS處理實(shí)現(xiàn)原理
這篇文章主要介紹了Springboot跨域CORS處理實(shí)現(xiàn)原理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
利用ClasserLoader實(shí)現(xiàn)jar包加載并調(diào)用里面的方法
classloader即是類加載,虛擬機(jī)把描述類的數(shù)據(jù)從class字節(jié)碼文件加載到內(nèi)存,并對(duì)數(shù)據(jù)進(jìn)行檢驗(yàn)、轉(zhuǎn)換解析和初始化,了解java的類加載機(jī)制,可以快速解決運(yùn)行時(shí)的各種加載問題并快速定位其背后的本質(zhì)原因,本文介紹了如何利用ClasserLoader來實(shí)現(xiàn)jar包加載并調(diào)用里面的方法2024-09-09
Mybatis日志參數(shù)快速替換占位符工具的詳細(xì)步驟
這篇文章主要介紹了Mybatis日志參數(shù)快速替換占位符工具的詳細(xì)步驟,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
導(dǎo)出maven項(xiàng)目依賴的jar包(圖文教程)
下面小編就為大家?guī)硪黄獙?dǎo)出maven項(xiàng)目依賴的jar包(圖文教程)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10
SpringBoot項(xiàng)目部署時(shí)application.yml文件的加載優(yōu)先級(jí)和啟動(dòng)腳本問題
Spring Boot在啟動(dòng)時(shí)會(huì)根據(jù)一定的優(yōu)先級(jí)順序加載配置文件,優(yōu)先級(jí)從高到低依次是:命令行參數(shù)、Jar包外部config目錄下的配置文件、Jar包同級(jí)目錄下的配置文件、classpath下的/config目錄、classpath根路徑2024-09-09

