本例目的:实现分页查询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 a = 0;
if (pageNum <= 0) {//判断是否小于最小页数
a = 1;
pageNum = 0;
}
else {
a = pageNum * 10 + 1;
}
ArrayList array = new ArrayList();
JobsBean job = new JobsBean();
DBC db = new DBC();
int count = db.getCount();//获取最大页数
if(pageNum > count){//判断是否超过最大页数
&nbs
p; a = 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"> 操
作
</td>
<%
for (int i = 0; i < array.size(); i++) {//迭代array
job = (JobsBean) array.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 a = 0;
if (pageNum <= 0) {
a = 1;
pageNum = 0;
}
else {
a = pageNum * 10 + 1;
}
ArrayList array = new ArrayList();
JobsBean job = new JobsBean();
DBC db = new DBC();
int count = db.getCount();
if(pageNum > count){
a = 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/
» 如果喜欢可以:点此邮件订阅或者点此阅读器订阅