高手指点!分页问题,急!!!

xiaoai 2012-04-13 10:47:56
数据库的一个表有若干条数据,要求在jsp上分页显示,请高手们,大虾们,跟我好好讲哈原理,给点代码提示,数据库的查询我已经查好了!
...全文
125 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoai 2012-04-15
  • 打赏
  • 举报
回复
哈哈! 我搞出来了
//定义四个变量
//每页显示数据的条数
Integer pageSize=2;
//首次出现显示的页
Integer pageNow=2; //默认显示第一页
//可以分为多少页
Integer pageCount=0;//默认为0;
//数据库一共有多少条数据
Integer rowCount=0; //默认为0;计算出来的;

BookInfoServices services=new BookInfoServices();
//对pageNow进行修改
String s_pageNow=request.getParameter("pageNow");
if(s_pageNow!=null)
{
//修改pageNow
pageNow=Integer.parseInt(s_pageNow);
}

//获取数据库数据的条数
rowCount=services.countBooks();

//计算可以分多少页
if(rowCount%pageSize==0)
{
pageCount=rowCount/pageSize;
}else{
pageCount=rowCount/pageSize+1;
}

%>
<table border="1">
<tr><td>ID</td><td>书名</td><td>作者</td><td>价格</td></tr>
<%
List<BookInfo> list=services.pageBooks(pageSize,pageNow);
for(BookInfo info:list)
{%>

<tr><td><%=info.getBid() %></td><td><%=info.getBname() %></td><td><%=info.getBautbor() %></td><td><%=info.getBprice() %></td></tr>

<%
}
%>
</table>
<%
//上一页
if(pageNow!=1)
{
out.print("<a href=ShowBook.jsp?pageNow="+(pageNow-1)+">上一页</a>");
}


for(int i=1;i<pageCount;i++)
{
out.print("<a href=ShowBook.jsp?pageNow="+i+">["+i+"]</a>");
}



//下一页
if(pageNow!=pageCount)
{
out.print("<a href=ShowBook.jsp?pageNow="+(pageNow+1)+">下一页</a>");
}

%>
kankan231 2012-04-14
  • 打赏
  • 举报
回复
本菜鸟刚学了分页,分页的原理就是用户在浏览器上点击哪一页的链接就把哪一页对应的数据从数据库取出来然后显示给用户看。具体实现起来也不是太难,需要事先规定每页显示多少条数据,获取总共有多少条数据,计算出总页数,然后根据这些数据生成分页链接。每个链接后都加上代表这页的参数。服务器端就可以根据这个参数来确定用户是想看哪一页的数据了
其中用到的一句很重的sql语句:
select column1,column2... from tableName limit x,y
就是从表中的第x-1行开始取y条记录出来
不知道这么说对你有没有帮助,呵呵
09ajustice 2012-04-14
  • 打赏
  • 举报
回复
从数据库里把数据取出来放到list集合里
int curPage=Integer.parseInt(request.getParameter("curPage")==null?"1":request.getParameter("curPage"));//当前页
int perPage=5;//每页个数
int totalPage;//总页数
if(list.size()%perPage==0){
totalPage=list.size()/perPage;
}else{
totalPage=list.size()/perPage+1;
}
if(curPage<1){
curPage=1;
}
if(curPage>totalPage){
curPage=totalPage;
}
if(curPage<1){
curPage=1;
}
int startIndex=(curPage-1)*perPage;
int endIndex=startIndex+perPage;
if(endIndex>list.size()){
endIndex=list.size();
}
request.setAttribute("curPage", curPage);
request.setAttribute("totalPage", totalPage);
list=list.subList(startIndex, endIndex);


jsp页面:
<s:if test="#request.curPage==1">
首页
上一页
</s:if>
<s:if test="#request.curPage>1">
<a href="./xxx?curPage=1">首页</a>
<a href="./xxx?curPage=${curPage-1 }">上一页</a>
</s:if>
<s:if test="#request.curPage==#request.totalPage">
下一页
末页
</s:if>
<s:if test="#request.curPage<#request.totalPage">
<a href="./xxx?curPage=${curPage+1 }">下一页</a>
<a href="./xxx?curPage=${totalPage } ">末页</a>
</s:if>
OrionBox 2012-04-13
  • 打赏
  • 举报
回复
SQL语句里有个查询结果显示第几行到第几行的方法..分页就是每次显示多少行.把第几页转成已显示了第几行和下一页需要几行.这两个数据加入到SQL语言.查询.结果显示到页面上.

51,409

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧