`
wuzijingaip
  • 浏览: 319734 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

jsp 分页包

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



第 1 页/共 100页  首页 上一页 5 6 7 8 9 10 11 12 13 14 下一页 尾页 (数字部分显示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 } 页&nbsp;/&nbsp;共
								${sessionScope.propPage.allPage } 页 &nbsp;&nbsp;&nbsp;
								<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 }">&nbsp;${num }&nbsp;</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,个人觉得还是不错的,有更好的请指点
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics