您的位置:首页 > Web前端 > JavaScript

很好的分页实例代码(JSP)

2016-08-02 10:11 267 查看
1:首先创建数据库链接类,我的博客前面有源码
2:创建封装你要分页的那个数据库表的Bean
3:封装实现分页功能的功能Bean 具体代码见下:
 
import java.util.ArrayList;
import java.sql.*;

public class PageBean
{

    private int curPage = 1;
//当前是第几页

    private int maxPage;
//一共有多少页

    private int maxRowCount;
//一共有多少行

    public int rowsPerPage = 10;
//每页多少行

    Connection conn;

    public ArrayList data;

    public PageBean() throws Exception
{

        this.setPageBean();

    }

    public int getCurPage()
{

        return curPage;

    }

    public int getMaxPage()
{

        return maxPage;

    }

    public int getMaxRowCount()
{

        return maxRowCount;

    }

    public int getRowsPerPage()
{

        return rowsPerPage;

    }

    public void setCurPage(int curPage)
{

        this.curPage
= curPage;

    }

    public void setMaxPage(int maxPage)
{

        this.maxPage
= maxPage;

    }

    public void setMaxRowCount(int maxRowCount)
{

        this.maxRowCount
= maxRowCount;

    }

    public void setRowsPerPage(int rowsPerPage)
{

        this.rowsPerPage
= rowsPerPage;

    }

    //得到要显示于本页的数据

    public PageBean getResult(String
page) throws Exception
{

        try {

            PageBean pageBean = new PageBean();

            ArrayList list = new ArrayList();

            int pageNum = Integer.parseInt(page);

            Statement stmt = conn.createStatement();

            String strSql =
"select top " + pageNum
* pageBean.rowsPerPage
+

                            " * from employee";//改成你的表

            ResultSet rset = stmt.executeQuery(strSql);

            int i
= 0;

            while (rset.next())
{

                    //这里要和表的字段对应起来!!!!

                    Employee item=new Employee();

                    item.setEmp_id(rset.getString("emp_id"));

                    item.setFname(rset.getString("fname"));

                    item.setMinit(rset.getString("minit"));

                    item.setLname(rset.getString("lname"));

                    item.setJob_id(rset.getInt("job_id"));

                    item.setJob_lvl(rset.getInt("job_lvl"));

                    item.setPub_id(rset.getString("pub_id"));

                    item.setHire_date(rset.getString("hire_date"));

                    list.add(item);

                i++;

            }

            ConnectionManager.closeResultSet(rset);

            ConnectionManager.closeStatement(stmt);

            pageBean.setCurPage(pageNum);

            pageBean.data
= list;

            return pageBean;

        } catch (Exception e)
{

            e.printStackTrace();

            throw e;

        }

    }

    //获取总行数

    public int getAvailableCount() throws Exception
{

        int ret = 0;

        conn = ConnectionManager.getConnection();

        Statement stmt = conn.createStatement();

        String strSql =
"select * from employee";//改成你的表

        ResultSet rset = stmt.executeQuery(strSql);

        while (rset.next())
{

            ret++;

        }

        return ret;

    }

    //初始化时对PageBean进行设置

    public void setPageBean() throws Exception
{

        //得到总行数

        this.setMaxRowCount(this.getAvailableCount());

        if (this.maxRowCount
% this.rowsPerPage
== 0)
{ //根据总行数计算总页数

            this.maxPage
= this.maxRowCount
/ this.rowsPerPage;

        } else {

            this.maxPage
= this.maxRowCount
/ this.rowsPerPage
+ 1;

        }

    }

}

 

4:建立中间中转的Servlet  PageServlet: 代码如下:

public void init() throws ServletException
{

  }

  //Process the HTTP Get request

  public void doGet(HttpServletRequest request, HttpServletResponse response) throws

      ServletException, IOException
{

    try

      {

            PageBean page1=new PageBean();

            PageBean page2=page1.getResult((String)request.getParameter("jumpPage"));

              //把PageBean保存到request对象中。注意:viewpage.jsp里jsp:useBean id必须为才可以"page2"!!!

              request.setAttribute("page2",page2);

      }

      catch(Exception e)

      {

              e.printStackTrace();

      }

          /**

       *把视图派发到viewForum.jsp

       */

      javax.servlet.RequestDispatcher dis=request.getRequestDispatcher("viewpage.jsp");

      dis.forward(request,response);

 }

5:现在建立现实JSP页面 viewpage.jsp:
<%@ page contentType="text/html;
charset=GBK" import="java.util.*,pagetest.Employee"
%>
<jsp:useBean
id="page2"
scope="request"
class="pagetest.PageBean"/>
<script
language="JavaScript"
type="text/JavaScript">

function Jumping(){

  document.PageForm.submit();

  return ;
}

function gotoPage(pagenum){

  document.PageForm.jumpPage.value
= pagenum;

  document.PageForm.submit();

  return ;
}
</script>
<html>
<head>
<title>

分页功能
</title>
</head>
<body
bgcolor="#ffffff">
<table
border="1">
<%
String s=String.valueOf(page2.getCurPage());
try{

ArrayList list=page2.getResult(s).data;
for(int i=0;i<list.size();i++){

  Employee emp=(Employee)list.get(i);
%>
<tr>
<td><%=emp.getEmp_id()%></td>
<td><%=emp.getFname()%></td>
<td><%=emp.getHire_date()%></td>
<td><%=emp.getJob_id()%></td>
<td><%=emp.getJob_lvl()%></td>
<td><%=emp.getLname()%></td>
<td><%=emp.getMinit()%></td>
<td><%=emp.getPub_id()%></td>
</tr>
<%

 }
}catch(Exception e){}
%>
</table>
<%if(page2.getMaxPage()!=1){
%>
<form
name="PageForm"
action="pageservlet"
method="post">

每页
<%=page2.rowsPerPage%>

行

共
<%=page2.getMaxRowCount()%>行

第
<%=page2.getCurPage()%>

页

共
<%=page2.getMaxPage()%>页
<BR>
<%

  if (page2.getCurPage()
== 1)
{

    out.print(" 首页 上一页");

  }

  else {
%>
<a
HREF="javascript:gotoPage(1)">首页</A>
<a
HREF="javascript:gotoPage(<%=page2.getCurPage()-1%>)">上一页</A>
<%}%>
<%

  if (page2.getCurPage()
== page2.getMaxPage())
{

    out.print("下一页 尾页");

  }

  else {
%>
<a
HREF="javascript:gotoPage(<%=page2.getCurPage()+1%>)">下一页</A>
<a
HREF="javascript:gotoPage(<%=page2.getMaxPage()%>)">尾页</A>
<%}%>

转到第
<SELECT
name="jumpPage"
onchange="Jumping()">
<%

  for (int i
= 1; i
<= page2.getMaxPage(); i++)
{

    if (i
== page2.getCurPage())
{
%>

  <OPTION
selected value="<%=i%>"><%=i%>
</OPTION>
<%}
else {%>

  <OPTION
value="<%=i%>"><%=i%>
</OPTION>
<%}

  }%>
</SELECT>

页
</form>
<%}%>
</body>
</html>

 

现在运行 就可以看到效果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: