思路:前端负责收集分页信息与筛选条件,后端可以通过分页信息的页码+每页多少条+筛选条件查到具体的51-100条数据。
每次的查询,下一页,末页等操作其实是更新分页信息与筛选条件罢了

①定义每页条数10条,有一个固定的查询方法,参数为分页信息或是筛选条件,如果都没有默认从第一页查询。

int pageNo = 1;  //页码
int pageNum = 10;  //条数
if(request.getParameter("pageNo") != null && !"".equals(request.getParameter("pageNo"))){
		pageNo = Integer.parseInt(request.getParameter("pageNo"));
	}

②不管是条件查询,还是点击下一页,重新调用本页面,重新获取分页信息或是筛选条件,再进行数据填充

archiveInfo.setTitle(request.getParameter("title")!=null?request.getParameter("title"):"");
archiveInfo.setClientCode(request.getParameter("clientCode")!=null?request.getParameter("clientCode"):"");
archiveInfo.setArchiveNo(request.getParameter("archiveNo")!=null?request.getParameter("archiveNo"):"");
archiveInfo.setCharger(request.getParameter("charger")!=null?request.getParameter("charger"):"");
archiveInfo.setFileNo(request.getParameter("fileNo")!=null?request.getParameter("fileNo"):"");
submitArchiveList = dao.getSubmitArchiveList2(【当前页码,每页条数】, 筛选条件archiveInfo);

③点击下一页,上一页,末页,首页时触发一个传递当前页码的函数,函数再submt本页面,每次提交到本页面,就会触发固定的查询方法,计算分页信息或是筛选条件,实现传递了页码的查询展示

<script>
//普通固定的提交本页面,重新调查询方法,筛选条件随着table表格已经提交了,在本页面也通过request获取了条件参数
function query(){  
	document.submitPigeonholeFrm.action="submitArchiveList.jsp";
    document.submitPigeonholeFrm.submit();
}

//下一页按钮,url也是提交给本页面,但还包含了一个页码pageNo
function go_page(url){
	submitPigeonholeFrm.action=url;
	submitPigeonholeFrm.submit();
}
</script>
<
!-- 提交归档列表 第 1 页  共 63 页       记录共 3136 条       首页 上页 下页 末页   -->
<form id="submitPigeonholeFrm" name="submitPigeonholeFrm" action="" method="post">
<table border="0" width="100%" style="margin-top: 10px;">
	<tr>
		<td width="200" style="border: 0px;padding-left: 15px;">提交归档列表</td>
		<td align="right" style="border: 0;padding-right: 15px;">
			<span class="text"><%=pageNo %>&nbsp;&nbsp;<%=pageInfo.iTotalPage%>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;记录共 <%=pageInfo.iTotalRow%>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
			<%
			if(pageNo>1){
			%>	
			<a href="javascript:void(0)" onclick="go_page('submitArchiveList.jsp?pageNo=1')">首页</a>
			<%}else{
			%>
			<span class="text">首页</span>
			<%}
			%>
			<%
 		if (pageNo > 1) {
 		nextPage = pageNo;
		 %> <a href="javascript:void(0)"
					onclick="go_page('submitArchiveList.jsp?pageNo=<%=String.valueOf(--nextPage) %>')">
				上页 </a> <%
		 } else {
		 %> <span class="text">上页</span> <%
		 }
		 %> <%
		 		if (pageNo < pageInfo.iTotalPage) {
		 		nextPage = pageNo;
		 %> <a href="javascript:void(0)"
					onclick="go_page('submitArchiveList.jsp?pageNo=<%=String.valueOf(++nextPage) %>')">
				下页</a> <%
		 } else {
		 %> <span class="text">下页</span> <%
		 }
		 %> <%
		 if (pageNo != pageInfo.iTotalPage && pageInfo.iTotalPage != 0) {
		 %> <a href="javascript:void(0)"
					onclick="go_page('submitArchiveList.jsp?pageNo=<%=String.valueOf(pageInfo.iTotalPage) %>')">
				末页</a> <%
		 } else {
		 %> <span class="text"> 末页</span> <%
		 }
		 %>
		</td>
	</tr>
</table>

展示数据的序号时,根据页码可以计算当前页是第多少条数据,每展示一条数据,num++

int num = (pageNo-1)*p.iPageCountUse+1;  //当前页的第num条数据,通过页码和每页条数就可算出来
<td align="center"><%=num++ %></td>  //在循环遍历时,展示一条数据,num++

更多推荐

3.jsp页面分页功能(首页、下一页、上一页、末页)