首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> JSP 程式設計 >> 關於JSP

JSP 分頁元件完整實作:PageCt 類別與前端整合範例

     編輯:關於JSP

分頁核心類別:PageCt.java

package vod;
import java.sql.*;
import java.util.*;

public class PageCt {
    private long l_start;      // 起始筆數
    private long l_end;        // 結束筆數
    private long l_curpage;    // 目前頁碼
    private long l_totalnum;   // 總筆數
    private int int_num = 5;   // 每頁筆數
    private long l_totalpage;  // 總頁數

    public void Init(long currentpage, long totalnum) {
        l_curpage = currentpage;
        l_totalnum = totalnum;

        if (currentpage >= 0) {
            if (currentpage >= (long)Math.ceil((double)l_totalnum / (double)int_num))
                l_curpage = (long)Math.floor((double)l_totalnum / (double)int_num);
            else
                l_curpage = currentpage;
        } else {
            l_curpage = 0;
        }

        l_start = l_curpage * int_num;
        l_end = l_start + int_num;
        if (l_end > l_totalnum) l_end = l_totalnum;
        l_totalpage = (long)Math.ceil((double)l_totalnum / (double)int_num);
    }

    // Getter 方法群
    public long getCurpage() { return l_curpage; }
    public long getPrepage() { return (l_curpage - 1 >= 0) ? l_curpage - 1 : 0; }
    public long getNextpage() { return (l_curpage + 1 <= l_totalpage) ? l_curpage + 1 : l_totalpage; }
    public long getTotalnum() { return l_totalnum; }
    public long getTotalpage() { return l_totalpage; }
    public long getStart() { return l_start; }
    public long getEnd() { return l_end; }
}

JSP 前端整合範例

<%@ page import="java.sql.*" contentType="text/html;charset=gb2312" %>
<jsp:useBean id="PageCount" scope="page" class="kstest.PageCt" />
<jsp:useBean id="sqlbean" scope="page" class="vod.sql_data" />
<html><head><TITLE>測試分頁</TITLE></head><body>
<%
    ResultSet rs0 = sqlbean.executeQuery("select count(*) from UserList");
    rs0.next();
    long data_num = rs0.getLong(1);
    long currentPage = 0;
    String cp = request.getParameter("currentpage");
    if (cp != null && !cp.equals("")) currentPage = Integer.parseInt(cp);
    String qp = request.getParameter("Query_Page");
    if (qp != null && !qp.equals("")) currentPage = Integer.parseInt(qp) - 1;

    PageCount.Init(currentPage, data_num);
    long start = PageCount.getStart();
    long end = PageCount.getEnd();

    ResultSet rs = sqlbean.executeQuery("select * from UserList");
    long i = 0;
    while (i < start && rs.next()) i++;
    while (rs.next() && i < end) {
        // 輸出資料列...
        i++;
    }
%>
<table width=600>
<tr bgcolor=#b5dbff>
<form method=GET action=index.jsp>
<td>共 <%=PageCount.getTotalnum()%> 條</td>
<td><%=PageCount.getCurpage()+1%>/<%=PageCount.getTotalpage()%> 頁</td>
<td>查看第 <input type=text name=Query_Page size=3> 頁</td>
<td><a href="index.jsp?currentpage=<%=PageCount.getPrepage()%>">上頁</a></td>
<td><a href="index.jsp?currentpage=<%=PageCount.getNextpage()%>">下頁</a></td>
</form></tr></table>
</body></html>

設計重點

  • 封裝分頁邏輯於 JavaBean,JSP 僅負責顯示
  • 支援頁碼跳轉、上下頁導航、直接輸入頁碼
  • 自動處理邊界條件 (首頁、尾頁、空資料)
  • 每頁筆數可透過 int_num 參數調整
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved