
2个回答
展开全部
分页有两种:真分页和假分页 (楼上的所说的方法是真分页)
区别:假分页要把所有数据先提取出来放到一个list集合里
真分页则是需要用到几行数据再从数据库中提取出来放把需要显示的数据放到list集合里
给你个例题,如果看不懂的话再详细给你说吧!
这是一个人员信息假分页的简单例题,里面有比较详细的注释:
<head>
</head>
<%
List list = session.getAttribute("list") != null ? (List) session.getAttribute("list") : new ArrayList();
/*当前页数 由自己进行提交的,默认值为1*/
int nowPage = request.getParameter("page") != null ? Integer.parseInt(request.getParameter("page")) : 1;
/*每页显示的条数*/
int pageSize = 5;
/*总共多少条*/
int maxCount = list.size();
/*总共多少页*/
/*如果总页数余上当前页数大于0,说明无法整除,所以在进行除法运算后加1页。否则,可以整除,直接进行除法运算操作*/
int maxPageCount = maxCount % pageSize > 0 ? (maxCount / pageSize) + 1 : maxCount / pageSize;
%>
<body>
<table border="1" width="100%">
<tr>
<td>ID</td>
<td>编号</td>
<td>时间</td>
<td>人员</td>
</tr>
<%
/*推算起始点:因为与每页的当前页数和每页多少条有关,所以,起始点是由这两个值推算得来
因为默认值是1,如果以1与每页多少条的积做为起始点,与事实不附,
因此考虑使用当前页数减1与每页的条数的积做为起始点
*/
/*推算结束点:可以直接用当前页数和每页的条数做为结束点
如果不合适,考虑是不是得到的积大于最大的记录数了,如果大于了,就用最大的记录数做为结束点。
否则,延用刚才的结论*/
for(int i = (nowPage - 1) * pageSize ; i < ((nowPage * pageSize) > maxCount ? maxCount : (nowPage * pageSize)) ; i++){
Orders orders = (Orders) list.get(i);
%>
<tr>
<td><%=orders.getId() %></td>
<td><%=orders.getCode() %></td>
<td><%=orders.getUsedate() %></td>
<td><%=orders.getUsername() %></td>
</tr>
<%
}
%>
</table>
<a href="list.jsp?page=1">首页</a>
<a href="list.jsp?page=<%=nowPage - 1 < 1 ? 1 : nowPage - 1%>">上一页</a>
<a href="list.jsp?page=<%=nowPage + 1 > maxPageCount ? maxPageCount : nowPage + 1%>">下一页</a>
<a href="list.jsp?page=<%=maxPageCount %>">尾页</a>
当前第<%=nowPage %>页,总共<%=maxPageCount %>页
</body>
区别:假分页要把所有数据先提取出来放到一个list集合里
真分页则是需要用到几行数据再从数据库中提取出来放把需要显示的数据放到list集合里
给你个例题,如果看不懂的话再详细给你说吧!
这是一个人员信息假分页的简单例题,里面有比较详细的注释:
<head>
</head>
<%
List list = session.getAttribute("list") != null ? (List) session.getAttribute("list") : new ArrayList();
/*当前页数 由自己进行提交的,默认值为1*/
int nowPage = request.getParameter("page") != null ? Integer.parseInt(request.getParameter("page")) : 1;
/*每页显示的条数*/
int pageSize = 5;
/*总共多少条*/
int maxCount = list.size();
/*总共多少页*/
/*如果总页数余上当前页数大于0,说明无法整除,所以在进行除法运算后加1页。否则,可以整除,直接进行除法运算操作*/
int maxPageCount = maxCount % pageSize > 0 ? (maxCount / pageSize) + 1 : maxCount / pageSize;
%>
<body>
<table border="1" width="100%">
<tr>
<td>ID</td>
<td>编号</td>
<td>时间</td>
<td>人员</td>
</tr>
<%
/*推算起始点:因为与每页的当前页数和每页多少条有关,所以,起始点是由这两个值推算得来
因为默认值是1,如果以1与每页多少条的积做为起始点,与事实不附,
因此考虑使用当前页数减1与每页的条数的积做为起始点
*/
/*推算结束点:可以直接用当前页数和每页的条数做为结束点
如果不合适,考虑是不是得到的积大于最大的记录数了,如果大于了,就用最大的记录数做为结束点。
否则,延用刚才的结论*/
for(int i = (nowPage - 1) * pageSize ; i < ((nowPage * pageSize) > maxCount ? maxCount : (nowPage * pageSize)) ; i++){
Orders orders = (Orders) list.get(i);
%>
<tr>
<td><%=orders.getId() %></td>
<td><%=orders.getCode() %></td>
<td><%=orders.getUsedate() %></td>
<td><%=orders.getUsername() %></td>
</tr>
<%
}
%>
</table>
<a href="list.jsp?page=1">首页</a>
<a href="list.jsp?page=<%=nowPage - 1 < 1 ? 1 : nowPage - 1%>">上一页</a>
<a href="list.jsp?page=<%=nowPage + 1 > maxPageCount ? maxPageCount : nowPage + 1%>">下一页</a>
<a href="list.jsp?page=<%=maxPageCount %>">尾页</a>
当前第<%=nowPage %>页,总共<%=maxPageCount %>页
</body>
展开全部
<%int mrpage=50; //默认显示条数
int pages=request.getParameter("pages"); //返回的页数
int uppage=pages-1; //上一页
int nextpage=pages+1;//下一页
//然后就是你的SQL了
//String sql="select top "+mrpage+" id,name from table where id not in(select top "+mrpage*pages+" id from table order by id desc) order by id desc";
%>
int pages=request.getParameter("pages"); //返回的页数
int uppage=pages-1; //上一页
int nextpage=pages+1;//下一页
//然后就是你的SQL了
//String sql="select top "+mrpage+" id,name from table where id not in(select top "+mrpage*pages+" id from table order by id desc) order by id desc";
%>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询