jsp 分页

虽不简单 2011-09-04 04:42:21
我用servlet 将数据保存在list中 并显示在jsp中 可是如何分页呢? 数据不多 五条一页 也就一百来页 甚至还没有 我不想用数据库分页,那该如何班呢? 求求求求!!!
...全文
195 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
helloshihaiping 2011-09-05
  • 打赏
  • 举报
回复
在数据库分页多好啊,为什么整那么麻烦,要在jsp中分页,得用js吧
休谱诺斯 2011-09-05
  • 打赏
  • 举报
回复
这个是集合分页:
package com.wxtl.page;

import java.util.ArrayList;
import java.util.List;

public class PageUtils implements java.io.Serializable
{

public PageUtils()
{
}

public static List getLimitedList(List origs, int page, int pageSite)
{
if(origs!=null&&origs.size()>0){
int total = origs.size();
int first = (page - 1) * pageSite;
int last = first + pageSite;
if(first < 0)
first = 0;
if(last > total)
last = total;
if(first > total)
return new ArrayList();
else
return origs.subList(first, last);
}else{
return null;
}
}
}
休谱诺斯 2011-09-05
  • 打赏
  • 举报
回复
lz你那样查询会比较慢的。。。而且js也只能传一些基本的值,还是需要计算的,最好还是数据库分页,再到页面上用js导航,不知道lz能不能明白。。。
游一游走一走 2011-09-05
  • 打赏
  • 举报
回复
竟然取出了全部数据,就把全部数据输出在JSP,然后在JSP页面通过JS展示指定页的内容就可以了,不想展示的隐藏就可以了.....只是自己写JS比较复制,输出所有数据后可谷歌查下静态分页的JS代码。。。大概就是把一个TABLE里的数据分页展示
wolf863292 2011-09-05
  • 打赏
  • 举报
回复
sublist 是后台分割数据,
也可以用js前台分割数据。

最终思想都是取出全部数据,得出总数,再求出起始记录数。
虽不简单 2011-09-05
  • 打赏
  • 举报
回复
球思路 球思路
虽不简单 2011-09-05
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 why6655 的回复:]
LZ,是否可以这样;
假设你的list<String>里面有200条数据,每次显示5条

那么前台每次传递当前需要显示的页数是第几页为n,

后台取出List<String> listNew = list.subList(n-1, 5);
[/Quote]

sublist (a,b)是切割从a到b的一个list
(n-1)*5,5*n 对吧
动感光波 2011-09-05
  • 打赏
  • 举报
回复
LZ,是否可以这样;
假设你的list<String>里面有200条数据,每次显示5条

那么前台每次传递当前需要显示的页数是第几页为n,

后台取出List<String> listNew = list.subList(n-1, 5);
hrzjojo 2011-09-05
  • 打赏
  • 举报
回复
如果没理解错 用循环取出要取出的 list 记录 然后 赋值到 新的 list对象 返回该对象 然后迭代出 即可
闲来无是非 2011-09-05
  • 打赏
  • 举报
回复
<tr>
<td width="800">
<table align="center" width="800">
<tr>
<td width="90%">
<table align="center" width="100%">
<% NewsManager sm = new NewsManager();
NewEntity su[] = sm.getAllNews(); //获得新闻消息///////
// 设置分页代码///////////////////////
int allreg = su.length;
int ipage=20; //分页单位
//-------------设置当前页面-------------
int tpage=0;
String tempstr=request.getParameter("page");
if(tempstr == null)
tpage = 0;
else
tpage = Integer.parseInt(tempstr);
//--------------------------------------------
//------------设置总页面-----------------
int allpage=0;
if(allreg%ipage ==0)
allpage = allreg/ipage;
else
allpage = allreg/ipage+1;
//--------------------------------------
//int pages; //接受的页码变量
int cpage=0; //当前页
int reg = ipage;
int flag = 0;
for(int i=tpage*ipage;i<su.length&®-->0;i++){
%> <tr>
<td align="left" width="70%"><img src="image/arrows/singleright.gif"/><a href="news/One_new.jsp?Id=<%=su[i].getId()%>" target="_self" ><%=su[i].getTiltle()%></a></td>
<td width="20%"><%=su[i].getATime().substring(0,16)%></td>
<td width=""><%=su[i].getAuthor()%></td>
</tr>
<% }
%>
</table>
</td>
<td width="10%" valign="top"><!--插入广告图片等.....-----></td>
</tr>
</table>
</td>
</tr>
<!--网站内容部分-------------------------------->
<tr>
<td width="100%" align="right">
<% String str0 = "",str1="",str2="",str3="",str4="",str5="";
str0="记录总数:"+allreg+"  当前第"+(tpage+1)+"页  共"+allpage+"页   ";
if(tpage==0) str1="<a disabled>首  页</a>  ";
else str1="<a href='NewsList.jsp?page=0'>首  页</a>  ";

if((tpage-1) >= 0 ) str2="<a href='NewsList.jsp?page="+(tpage-1)+"'>上一页</a>  ";
else str2="<a disabled>上一页</a>  ";

if((tpage+1)<allpage) str3="<a href='NewsList.jsp?page="+(tpage+1)+"'>下一页</a>  ";
else str3="<a disabled>下一页</a>  ";

if(allpage==0||(tpage+1)==allpage) str4="<a disabled>未  页</a>";
else str4="<a href='NewsList.jsp?page="+(allpage-1)+"'>末  页</a>";

str5="  转到第<input type='text' value="+(tpage+1)+" size='2' onchange='jumppage(this.value,"+allpage+")'>页";
%> <font color="#666666" style="font-size:12px;"><%=str0+str1+str2+str3+str4+str5%></font>
</td>
</tr>
微风飘过 2011-09-05
  • 打赏
  • 举报
回复
不想用就使用分页组件
jiangdaxian2003 2011-09-05
  • 打赏
  • 举报
回复
在数据库里,如果是mysql,用limit,如果是oracle,用rownum
虽不简单 2011-09-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 foun1046 的回复:]
把list用request.setAttribute("list",list);传到jsp页面中去,然后再显示就可以了嘛
[/Quote]

你没看懂我问的啥阿/?
虽不简单 2011-09-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 mycdsnstudy 的回复:]
你说的就是jsp显示分页吧,写js吧
[/Quote]

js 可以? 点下一页 显示另外五条?
foun1046 2011-09-04
  • 打赏
  • 举报
回复
把list用request.setAttribute("list",list);传到jsp页面中去,然后再显示就可以了嘛
小龙在线 2011-09-04
  • 打赏
  • 举报
回复
你说的就是jsp显示分页吧,写js吧
飓风zj 2011-09-04
  • 打赏
  • 举报
回复
那你就生命一个hashmap,然后key是你的pageIndex,value的是你的集合
循环你查询的list,被5整除的时候,改变一次key,就可以了,以后从这个hashmap根据key值取数据就可以相应pegeindex的数据了啊
虽不简单 2011-09-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ajun_studio 的回复:]
在你进行数据库查询的时候就进行分页吧
mysql
第一页
select * from tab limit 0,5查询前五条

第二页
select * from tab limit 5,5这是5-10的记录
[/Quote]


我不想这样 这位朋友!
飓风zj 2011-09-04
  • 打赏
  • 举报
回复
在你进行数据库查询的时候就进行分页吧
mysql
第一页
select * from tab limit 0,5查询前五条

第二页
select * from tab limit 5,5这是5-10的记录
li498833284 2011-09-04
  • 打赏
  • 举报
回复
list 有个sublist方法 你看看就知道了

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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