jsp分页显示

(来自百度空间)JSP中如何实现分页

大致思路:
首先,从数据库中取出所有记录,保存在一个容器中(当然容器有很多种,我们可以随便选)。然后,我们根据链接传递的参数来从容器中取出需要显示的记录。
public ArrayList<CommonAdmin> select(){
ArrayList<CommonAdmin> list=new ArrayList<CommonAdmin>();
Connection con=ConnDB.getConn();
String strsql="select * from commonAdmin";
try{
PreparedStatement pstmt=con.prepareStatement(strsql);
ResultSet rs=pstmt.executeQuery();
while(rs.next()){
CommonAdmin commonAdmin=new CommonAdmin();
commonAdmin.setId(rs.getInt("id"));
commonAdmin.setName(rs.getString("name"));
commonAdmin.setCommonAdminName(rs.getString("commonAdminName"));
commonAdmin.setSex("sex");
commonAdmin.setEmail(rs.getString("email"));
commonAdmin.setCellphone(rs.getString("cellphone"));
list.add(commonAdmin);
}
}catch(Exception e){
e.printStackTrace();
}
return list;
}
通过这个函数我们可以得到查询的结果集list.(我将这个方法封装在了一个CommonAdminMgr的类中)
下面我们需要读取list里面对应的值。
CommonAdminMgr mgr=new CommonAdminMgr();
ArrayList<CommonAdmin> list=new ArrayList<CommonAdmin>();
CommonAdmin commonAdmin=new CommonAdmin();
list=mgr.select();
int pageSize=5;//每页显示的记录数
int rowCount=list.size();//所有记录数
int pageCount=(rowCount%pageSize==0)?rowCount/pageSize:rowCount/pageSize+1;//总共分页数目
int page1;//待显示页码
String strpage=request.getParameter("page");
if(strpage==null){
//表明在QueryString中没有page这一个参数,此时显示第一页数据 
page1=1;
}else{
page1=Integer.parseInt(strpage);
if(page1<1){
page1=1;
}
}
int size=list.size();

下面我们通过一个循环输出想要得到的结果集
<table width="899" border="1">
<tr bgcolor="#66CCFF">
<td width="52" height="41"> <div align="center" class="STYLE1">选择</div></td>
<td width="89"><div align="center"><span class="STYLE2">编号</span></div></td>
<td width="103"><div align="center"><span class="STYLE2">姓名</span></div></td>
<td width="127"><div align="center"><span class="STYLE2">登录名</span></div></td>
<td width="80"><div align="center"><span class="STYLE2">性别</span></div></td>
<td width="173"><div align="center"><span class="STYLE2">邮箱</span></div></td>
<td width="97"><div align="center"><span class="STYLE2">联系电话</span></div></td>
</tr>
<%
//如果剩下的记录数目小于pageSize,则将剩下的几个输出。如果大于pageSize,则输出pageSize个
int index=(size-(page1-1)*pageSize)<pageSize?size:(page1*pageSize);
for(int i=(page1-1)*pageSize;i<index;){
commonAdmin=list.get(i);
%>
<tr>
<td height="40"><input type="radio" name="select" value=<%=commonAdmin.getId() %> /></td>
<td>&nbsp;<%=commonAdmin.getId() %></td>
<td>&nbsp;<%=commonAdmin.getName() %></td>
<td>&nbsp;<%=commonAdmin.getCommonAdminName() %></td>
<td>&nbsp;<%=commonAdmin.getSex() %></td>
<td>&nbsp;<%=commonAdmin.getEmail() %></td>
<td>&nbsp;<%=commonAdmin.getCellphone() %></td>
</tr>
<%
i++;
}
%>
</table>
链接传递的参数:
<p align="right">当前第
<input name="textfield2" type="text" size="5" value=<%=page1 %> readonly="true"/>
页 <a href="CommonAdminDelete.jsp?page=1">首页 </a>
<a href="CommonAdminDelete.jsp?page=<%=page1-1%>">上一页</a>
<a href="CommonAdminDelete.jsp?page=<%=page1+1%>"> 下一页</a> 
<a href="CommonAdminDelete.jsp?page=<%=pageCount %>">末页</a>
共<input name="total" type="text" size="5"readonly="true" value=<%=pageCount %> />页       
</p>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值