jsp页面中获取分页查询记录的序号问题
action中已经有page属性和pageSize属性,pageSize默认为10,JSP中是这样写的<td><s:property value="#index.count+((page-1)* pageSize)"/></td>
但是死活得不到想要的结果,得到的每一页都是从1.0开始到10.0。。。。我想要的是从1开始到总的记录条数。
请帮忙看看为啥这样写不行。 --------------------编程问答-------------------- 学习,能不能设置一个静态的量,每一次点击下一页,本身-pageSize,每一页从这个静态量开始显示 --------------------编程问答-------------------- 你这样困怕不行吧!因为最后一页有可能是1条数据,这样计算不是很安全,应该到DB中select count(*) from table 然后放在对象在在页面的遍历对象。 --------------------编程问答-------------------- 我的分页实现方式是 思路是:得到总的但是现实只显示要分页的几条
----------------------------------------------------------得到显示的页数默认第一页
//分页设置得到页码
String pages=request.getParameter("pages");
int i=0;
if(null==pages){
i=0;
}else{
i=Integer.parseInt(pages)-1;
i=i*4;
}
-----------------------------------------------得到总的信息根据页码提取
try {
//得到最新的四条信息
int line2=0;
bl=blogImp.getNewTitle();
if(null!=bl){
for(;i<bl.size();i++){
out.print("<center>");
out.print(bl.get(i).getTilte()+" "+bl.get(i).getCreatetime()+" 作者:"+bl.get(i).getBuid());
//编辑查看地址
out.print("<a href=\"/blog/article_priview.jsp?titleID="+bl.get(i).getBid()+"\""+">"+" [查看]"+"</a>");
out.print("</center>");
out.print(bl.get(i).getArticle());
out.print("<hr />");
//每次显示前四条
if(line2>=3)break;
line2++;
}
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
Util.release();
}
---------------------------------------------------显示总的页数的超链接
//循环打印下标 看是否长度是4的倍数
int notice=bl.size();
if(bl.size()%4==0)notice-=1;
out.print("<center>");
for(int t=1;t<=notice/4+1;t++){
out.print("<a href=\"?pages="+t+"\""+">"+"["+t+"]"+"</a>");
}
-------------------------------------------------------------
求交流 --------------------编程问答--------------------
你这样没有真正的起到分页作用,不知道你用的是什么数据库,可以在数据库中直接取到分页数据:
select top 10(10为每页显示10条) * from table where id not in (select top (pageNum-1)*10 from table)pageNum=当前第几页。 --------------------编程问答-------------------- "我的分页实现方式是 思路是:得到总的但是现实只显示要分页的几条"
不推荐。。。
建议仔细理解分页的意义,以较大的数据模型作为基础在考虑。
sql语句中提供的查询第N-M条数据,就可以用来进行分页处理,实际上绝大多数分页都是在数据库这里进行的。
这样才能提高查询效率,避免等待过长
补充:Java , Java EE