jsp 分页包

很久以前做的分页包,好不容易找到的,所以上传一下
显示后效果如下:


第 1 页/共 100页 [color=blue]首页[/color] [color=blue]上一页[/color] 5 6 7 8 9 10 11 12 13 14 [color=blue]下一页[/color] [color=blue]尾页[/color] (数字部分显示10个)


包分为:
pagebean.xml 放在项目的WEB-INF/classes/下 (eclipse的src下)

<?xml version="1.0" encoding="UTF-8"?>
<pagebean-config>
<pagebean name="playlistpage" class="com.provideo.ibox.playlist.actions.PlayListAction"/> <pagebean name="playpage" class="com.provideo.ibox.playlist.actions.PlayAction"/>
<!-- 可多个 -->
</pagebean-config>

playlistpage 为 session中的一个pagebean的key

PageBean.java
PageBeanInterface.java (里面只有一个接口,就是getAllRow(),获取所有行)
pageFactory.java
ReadPageBeanXML.java (读pagebean.xml)


使用:

一.在pagebean.xml中为要分页的页面分配一个key
二.DAO类实现PageBeanInterface接口,并写一个分页方法


public List listPlaylistPage(int page,int row){
String sql = "select ID, Name from `.`Play_List` limit ?,?";

List list = new ArrayList();
Connection con = null;
try {
con = new DBConnSourceByStruts().getConnection();
} catch (SQLException e1) {
e1.printStackTrace();
}
try{
ps = con.prepareStatement(sql);
ps.setInt(1, (page - 1 ) * row);
ps.setInt(2, row);

ResultSet rs = ps.executeQuery();
while(rs.next()){
PLBean bean = new PLBean();
bean.setId(rs.getInt(1));
bean.setName(MyString.isotoGbk(rs.getString(2)));
bean.setOwner(rs.getString(3));
bean.setDesc(MyString.isotoGbk(rs.getString(4)));
bean.setDuration(rs.getString(5));
bean.setElapsedtime(rs.getString(6));
bean.setFilesize(rs.getString(7));
bean.setAddtime(rs.getString(8));
bean.setModifydate(rs.getString(9));
list.add(bean);
}

}catch (Exception e) {
e.printStackTrace();
}finally{
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return list;
}




三.action 中调用pagebean


Integer typeid = -1;
if(request.getParameter("typeid") != null){
typeid = Integer.parseInt(request.getParameter("typeid"));
}

Integer pageCount = 20;
if(request.getParameter("pageCount") != null){
pageCount = Integer.parseInt(request.getParameter("pageCount"));

}
PageBean page = pageFactory.createPageBean(getAllRow(typeid),"propPage",pageCount, request, response);

List pl_list = dao.listPlaylistPage(page.getPage(), page.getRow());

request.getSession().setAttribute("pageCount", pageCount);
request.setAttribute("playlistlist", pl_list);


四.页面上使用


<table class="font3">
<c:choose>
<c:when test="${sessionScope.propPage.noResultShow=='' }">
<tr bgcolor="#ffffff">
<td align="left">
第 ${sessionScope.propPage.page } 页 / 共
${sessionScope.propPage.allPage } 页    
<a href="${pageContext.request.contextPath}/playlistaction.do?method=listPlaylistPage&page=1&typeid=-1">首页 </a>
<a href="${pageContext.request.contextPath}/playlistaction.do?method=listPlaylistPage&typeid=-1&page=${sessionScope.propPage.page-1}">上一页</a>

<c:if test="${not empty sessionScope.propPage.pageNums}">

<logic:iterate id="num" collection="${propPage.pageNums}">
<a href="${pageContext.request.contextPath}/playlistaction.do?method=listPlaylistPage&page=${num }"> ${num } </a>
</logic:iterate>

</c:if>
<a href="${pageContext.request.contextPath}/playlistaction.do?method=listPlaylistPage&typeid=-1&page=${sessionScope.propPage.page+1}">下一页</a>
<a href="${pageContext.request.contextPath}/playlistaction.do?method=listPlaylistPage&typeid=-1&page=${sessionScope.propPage.allPage}">尾页 </a>
</td>
</tr>
</c:when>
<c:otherwise>
<tr bgcolor="#ffffff">
<td align="center">
${sessionScope.propPage.noResultShow }
</td>
</tr>
</c:otherwise>
</c:choose>
</table>




结束
如果还有问题,也问题不大,自已调调就行了
看上去步骤比平时多了一两步,但在多处可共用这个pagebean,个人觉得还是不错的,有更好的请指点
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值