Java基础——Servlet(六)分页相关
生活随笔
收集整理的這篇文章主要介紹了
Java基础——Servlet(六)分页相关
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前面寫了Servlet(一)到(五),主要是在網上搜羅的視頻、對分頁這塊還是不太清楚。于是有找到一些視頻,重新學習了一下。主要是對分頁的認識和設計思路。也是為了方便我以后回憶一下。。
一、分頁常識
pageSize //每頁有多少條記錄 --用戶設定
rowCount //一共有多少條記錄 --從數據庫中查的
pageIndex //當前查看的是第幾頁 --用戶選擇的
beginRow //從第幾行開始查詢 --計算得到 pageSize*(pageIndex-1)
pageCount //總共有多少頁 --計算
?
//栗子 if(rowCount%pageSize==0){pageCount=rowCount/pageSize;}else{pageCount=rowCount/pageSize+1 }二、PageInfo 類
public class PageInfo {private int pageSize; // 頁面大小private int pageCount; // 頁面總數private int pageIndex; // 當前頁private int beginRow; // 開始頁private int rowCount; // 總條數private boolean hasNext; // 是否有后一頁private boolean hasPre; // 是否有前一頁public int getPageSize() {return pageSize;}public void setPageSize(int pageSize) {this.pageSize = pageSize;}public int getPageCount() {return pageCount;}public void setPageCount(int pageCount) {this.pageCount = pageCount;}public int getPageIndex() {return pageIndex;}public void setPageIndex(int pageIndex) {this.pageIndex = pageIndex;}public int getBeginRow() {return beginRow;}public void setBeginRow(int beginRow) {this.beginRow = beginRow;}public int getRowCount() {return rowCount;}public void setRowCount(int rowCount) {this.rowCount = rowCount;}public boolean isHasNext() {return hasNext;}public void setHasNext(boolean hasNext) {this.hasNext = hasNext;}public boolean isHasPre() {return hasPre;}public void setHasPre(boolean hasPre) {this.hasPre = hasPre;}}三、分頁工具類
public class PageUtil {public static PageInfo getPageInfo(int pageSize, int rowCount, int pageIndex) {PageInfo p=new PageInfo(); pageSize=getPageSize(pageSize);p.setPageSize(pageSize);p.setRowCount(rowCount);p.setPageCount(getPageCount(pageSize,rowCount));p.setBeginRow(getBeginRow(pageSize,pageIndex));p.setHasNext(isHasNext(pageIndex,getPageCount(pageSize,rowCount)));p.setHasPre(isHasPre(pageIndex));p.setPageIndex(pageIndex);return p;}//判斷當是否有前一頁private static boolean isHasPre(int pageIndex) {if(pageIndex==1){return false;}else {return true;}}//判斷是不是有下一頁private static boolean isHasNext(int pageIndex, int pageCount) {if(pageIndex==pageCount||pageCount==0){return false;}else{return true;}}//計算從第幾行開始查詢private static int getBeginRow(int pageSize, int pageIndex) {return pageSize*(pageIndex-1);}//計算頁的總數private static int getPageCount(int pageSize, int rowCount) {if(rowCount%pageSize==0){return rowCount/pageSize;}else{return rowCount/pageSize+1;} }//返回pageSizeprivate static int getPageSize(int pageSize) {return pageSize==0?10:pageSize;}}四、頁面
<script type="text/javascript">function subForm(){//form1.action="AdminServlet?flag=manage"; form1.submit();}</script><body><form action ="AdminServlet" method="post" name="form1"><input type="hidden" name=flag value="manage" /><table width=80% border=1 cellspacing=0s><c:forEach var="u" items="${adminList}"><tr><td>${u.id }</td><td>${u.userName }</td><td>${u.password }</td><td>${u.note }</td><td><a href="admin/admin_edit.jsp?id=${u.id }" >修改</a> | <a οnclick="return confirm('確定要刪除嗎?')"href="AdminServlet?flag=del&id=${u.id }" >刪除</a></td></tr></c:forEach></table>共有 ${ pageInfo.rowCount} 條記錄,當前第 ${ pageInfo.pageIndex} 頁, 共 ${ pageInfo.pageCount}頁 <c:choose><c:when test="${pageInfo.hasPre }"><a href="AdminServlet?flag=manage&pageIndex=1" >首頁</a>
<a href="AdminServlet?flag=manage&pageIndex=${pageInfo.pageIndex-1 }" >前一頁 </a> </c:when><c:otherwise>首頁 前一頁</c:otherwise></c:choose><c:choose><c:when test="${pageInfo.hasNext }"><a href="AdminServlet?flag=manage&pageIndex=${pageInfo.pageIndex+1 }" >下一頁</a>
<a href="AdminServlet?flag=manage&pageIndex=${pageInfo.pageCount }" >尾頁 </a> </c:when><c:otherwise>下一頁 尾頁</c:otherwise></c:choose><a href="javascript:subForm()" >轉到</a> 第 <input type="text" name="pageIndex" value=${pageInfo.pageIndex }> 頁</form>
五、控制層
private void manage(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {int pageSize=4;int rowCount=_dao.getUserCount();String pageIndexStr=request.getParameter("pageIndex");int pageIndex=1;if(!StrUtil.isNullOrEmpty(pageIndexStr)){pageIndex=Integer.parseInt(pageIndexStr); }PageInfo pageInfo=PageUtil.getPageInfo(pageSize,rowCount,pageIndex);List<UserInfo> adminList=_dao.getUserList(pageInfo);request.setAttribute("adminList", adminList);request.setAttribute("pageInfo", pageInfo);request.getRequestDispatcher("/admin/admin_manage.jsp").forward(request, response); }?
轉載于:https://www.cnblogs.com/1693977889zz/p/7485497.html
總結
以上是生活随笔為你收集整理的Java基础——Servlet(六)分页相关的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java编写之jpg图片与base64编
- 下一篇: 闭包原理个人理解