本例目的:实现分页查询mssql中自带的pubs数据库中的jobs表。 首先打开JBuilder2006创建一个web模块。新建一个jsp文件,例如:list.jsp用于显示数据。

<%@page contentType="text/html; charset=GBK" import="java.util.ArrayList,com.dbc.DBC,com.jobs.JobsBean"%>
<
html>
<
head>
<
title>list</title>
</
head>
<
body bgcolor="#ffffff">
<%
  
int pageNum 0;
  
try {
    
pageNum Integer.parseInt(request.getParameter("page"));//接收url重写参数
  
}
  
catch (Exception ex) {
    
pageNum 0;
  }
  
int 0;
  
if (pageNum <= 0) {//判断是否小于最小页数
    
1;
    
pageNum 0;
  }
  
else {
    
pageNum 10 1;
  }
  
ArrayList array new ArrayList();
  
JobsBean job new JobsBean();
  
DBC db new DBC();
  
int count db.getCount();//获取最大页数
  
if(pageNum count){//判断是否超过最大页数
  &nbs
p; 
count*10+1;
    
pageNum count;
  }
  
array db.getJobs(a);//查询数据
%>
<
center>
  <
table border="1" bgcolor="green">
    <
tr>
      <
td>id</td>
      <
td>desc</td>
      <
td>min</td>
      <
td>max</td>
      <
td colspan="2">        
        
&nbsp;
        

      
</td>
    <%
      
for (int 0array.size(); i++) {//迭代array
        
job = (JobsBeanarray.get(i);//强制转换成JobsBean类型
    
%>

    <tr>//使用get()方法取值
      
<td><%=job.getId() %>      </td>
      <
td><%=job.getDesc() %>      </td>
      <
td><%=job.getMin() %>      </td>
      <
td><%=job.getMax() %>      </td>
      <
td>//以下用于url重写实现后面将要实现的修改,删除等操作
        
<a href="edit.jsp?id=<%=job.getId()%>">修改</a>
      </
td>
      <
td>
        <
a href="del.jsp?id=<%=job.getId()%>">删除</a>
      </
td>
    </
tr>
  <%}  %>
    <
tr>
      <
td>
        <
a href="list.jsp?page=0">首页</a>
      </
td>
      <
td>
        <
a href="list.jsp?page=<%=pageNum-1%>">上一页</a>
      </
td>
      <
td>
        <
a href="list.jsp?page=<%=pageNum+1%>">下一页</a>
      </
td>
      <
td>
        <
a href="list.jsp?page=<%=count%>">末页</a>
      </
td>
    </
tr>
  </
table>
</
center>
</
body>
</
html>

接下来我们对上面这段代码进行分析。 import="java.util.ArrayList,com.dbc.DBC,com.jobs.JobsBean" 用于导入我们需要的包和bean
,具体将在下一篇讲到。

int pageNum 0;
  
try {
    
pageNum Integer.parseInt(request.getParameter("page"));
  }
  
catch (Exception ex) {
    
pageNum 0;
  }
  
int 0;
  
if (pageNum <= 0) {
    
1;
    
pageNum 0;
  }
  
else {
    
pageNum 10 1;
  }
  
ArrayList array new ArrayList();
  
JobsBean job new JobsBean();
  
DBC db new DBC();
  
int count db.getCount();
  
if(pageNum count){
    
count*10+1;
    
pageNum count;
  }
  
array db.getJobs(a);

上面这段代码中我们声明一个int型的pageNum并使用pageNum = Integer.parseInt(request.getParameter("page"))来接收list.jsp在进行url重写的时候传递来的参数。int型的a用于计算出我们要查询从第几条记录开始的10条记录。 int count = db.getCount(); if(pageNum > count){ a = count*10+1; pageNum = count; } array = db.getJobs(a); db.getCount()将返回数据按每10条一页可分出的页数,并将其与url重写时传递的参数进行比较,若pageNum大于count(即:所要查看的页数超过最大页数)则始终查询最后1页数据。使用array存储查询出的数据。

<table border="1" bgcolor="green">
    <tr>
      <td>
id</td>
      <td>
desc</td>
      <td>
min</td>
      <td>
max</td>
      <td 
colspan="2">操作</td>
    <%
      
for (int i = 0; i < array.size(); i++) {
        job = (JobsBean) array.get(i);
    
%>

    <tr>
      <td><%=
job.getId() %>      </td>
      <td><%=
job.getDesc() %>      </td>
      <td><%=
job.getMin() %>      </td>
      <td><%=
job.getMax() %>      </td>
      <td>
        <a 
href="edit.jsp?id=<%=job.getId()%>">修改</a>
      </td>
      <td>
        <a 
href="del.jsp?id=<%=job.getId()%>">删除</a>
      </td>
    </tr>
  <%
}  %>
    <tr>
      <td>
        <a 
href="list.jsp?page=0">首页</a>
      </td>
      <td>
        <a 
href="list.jsp?page=<%=pageNum-1%>">上一页</a>
      </td>
      <td>
        <a 
href="list.jsp?page=<%=pageNum+1%>">下一页</a>
      </td>
      <td>
        <a 
href="list.jsp?page=<%=count%>">末页</a>
      </td>
    </tr>
  </table>
上面这段代码使用for循环输出array中存储的数据。下面的首页,上一页等均使用url重写进行查询。

 » 除非另有声明,本站文章均为原创。
 » 转载原创文章请以链接形式注明:
 » 转载自:[Neeke] » [jsp中实现分页显示数据]
 » 本文链接地址: http://www.ineeke.com/archives/389/
 » 如果喜欢可以:点此邮件订阅或者点此阅读器订阅