一個通用的Java分頁基類
分頁的基類
import java.util.List; /**
- 分頁顯示的標準類,基本操作,是先給予-當前頁數一共的數據條數-每頁顯示的條數,
- 然后在初始化該類,得到總共頁數,和開始序號和結束序號,
- 然后數據庫分頁用到開始序號和結束序號,得到數據集合后賦值給該類的list屬性,
- 然后把該類發送到jsp頁面,進行訪問
- @author admin *
@param <T> */ public class PageBean<T> { private int pageIndex;//當前頁數 private int pageSize;//一共的頁數 private int count;//數據條數 private int pageCount;//每頁的數據條數 private int start;//起始數據位置 private int end;//結束 private List<T> list=null;
public void init(){
/*根count 和pageCount計算頁數pageSize */ int pageSize_x=(int)count/pageCount; if(count>=pageCount){ this.pageSize=count%pageCount==0?pageSize_x:pageSize_x+1; }else{ this.pageSize=1; } //判斷頁數和當前頁數 if(pageIndex>pageSize){ pageIndex=pageSize; } if(pageIndex<1){ pageIndex=1; } //根據當前頁計算起始和結束條目 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;
}
}
</pre>
servlet調用
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); }
} </pre>
jsp頁面的顯示調用<%@ 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%>">
<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"> -->
</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}">下一個</a>[${pagebean.pageIndex }<span>/</span>${pagebean.pageSize}] </body> </html> </pre>