简单分页的实现

注:

以下介绍的分页为简单的分页,适合数据量小的模块。如果查询展现的数据量非常大,此分页实现不适合。

 

1:参照jsp页面

 

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ page isELIgnored="false" %>	
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<base href="<%=basePath%>">
		<title>所有用户列表</title>
    <script type="text/javascript">
			function onlyNum(){ 
				if(!(event.keyCode==46)&&!(event.keyCode==8)&&!(event.keyCode==37)&&!(event.keyCode==39)) 
				if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105))) 
				event.returnValue=false; 
			} 

			function selectPage(page,pageCount){
				var page = page;
				var pageCount = pageCount;
				var pageCode = document.getElementById("pageCode").value;
				if(pageCount==0){
					alert("当前无数据");
				}else if(pageCode==""){
					alert("请输入页数");
				}else if(pageCode > pageCount || pageCode < 1){
					alert("超出页数范围");
				}else if(page==1 && page==pageCode){   
	         		alert("当前已是第一页");
     			}else if(page==pageCount && page==pageCode){
     				alert("当前已是最后一页");
     			}else if(page==pageCode){
     				alert("已是当前页");
     			}else {
     				form1.action = "<%=request.getContextPath()%>/pageTPwUserList.action?page="+pageCode;
					form1.submit();
     			}
			}
			function selectSy(page,pageCount){
				var page = page;
				var pageCount = pageCount;
				if(pageCount==0){
					alert("当前无数据");
				}else if(page==1){   
	         		alert("当前已是第一页");
     			} else {
	     			form1.action = "<%=request.getContextPath()%>/pageTPwUserList.action?page=1";
					form1.submit();
     			}
			}
			function selectSyy(page,pageCount){
				var page = page;
				var pageCount = pageCount;
				if(pageCount==0){
					alert("当前无数据");
				}else if(page==1){   
	         		alert("当前已是第一页");
     			} else{
	     			var pageS = page-1;
					form1.action = "<%=request.getContextPath()%>/pageTPwUserList.action?page="+pageS;
					form1.submit();
     			}
			}
			function selectXyy(page,pageCount){
				var page = page;
				var pageCount = pageCount;
				if(pageCount==0){
					alert("当前无数据");
				}else if(page==pageCount){
					alert("当前已是最后一页");
				}else{
					var pageX = page+1;
					form1.action = "<%=request.getContextPath()%>/pageTPwUserList.action?page="+pageX;
					form1.submit();
				}
			}
			function selectWy(page,pageCount){
				var page = page;
				var pageCount = pageCount;
				if(pageCount==0){
					alert("当前无数据");
				}else if(page==pageCount){
					alert("当前已是最后一页");
				}else{
					form1.action = "<%=request.getContextPath()%>/pageTPwUserList.action?page="+pageCount;
					form1.submit();
				}
			}
		</script>  
 	 </head>
  
  <body>
 	
   <form action="" id="form1" οnsubmit="return true;" method="post">

   <table>
   	<tr><td>序号</td><td>ID号</td><td>登入名</td></tr>
	<s:iterator value="list"  id="sa" status="stat" >
		<tr>
			
			 <td>
				<input type="checkbox"/>
				<s:property value="#stat.index+1"/>
			 </td>
			 <td align = "center"><s:property value="#sa.PId"/></td>
			 <td align = "center"><s:property value="#sa.PLoginname"/></td>
		</tr>	 
	 </s:iterator>
   </table>
	  记录总数
	  <s:property value="count"/>
	  <input type="hidden" />条    共
	  <s:property value="pageCount"/>页 当前是第
	  <s:property value="page"/>页 每页15条 
	  <input type="button" id="tz"  οnclick="selectPage(<s:property value="page"/>,<s:property value="pageCount"/>)" value="跳转到 ">第
	  <input type = "text"  id="pageCode" οnkeydοwn="onlyNum();" style="ime-mode:Disabled;height:19px;width:25px" > 页 
	  <input type="button" id="sy"  οnclick="selectSy(<s:property value="page"/>,<s:property value="pageCount"/>)" value="首页">
	  <input type="button" id="syy" οnclick="selectSyy(<s:property value="page"/>,<s:property value="pageCount"/>)" value="上一页 ">
	  <input type="button" id="xyy" οnclick="selectXyy(<s:property value="page"/>,<s:property value="pageCount"/>)" value="下一页">
	  <input type="button" id="wy"  οnclick="selectWy(<s:property value="page"/>,<s:property value="pageCount"/>)" value="尾页 ">
   </form>	
  </body>
</html>


 

 

2:参照action类 片段

 

	private int count = 0;
	private int pageCount = 0;
	private int page = 1;
	private List<TPwUser> list;	//此list类型为对应数据的bean类型

	//实现四个全局变量的get set 方法

	
	//此方法点击翻页的时候执行
	public String pageSelect() throws Exception {
		this.list = tPwUserService.getAllTPwUser(); //把servcie层获得的数据赋给list。
		count = list.size();
		pageCount = count / 15;
		if (count % 15 != 0) {
			pageCount = pageCount + 1;
		}
		if (page * 15 > count) {
			this.list = list.subList((page - 1) * 15, count);
		} else {
			this.list = list.subList((page - 1) * 15, page * 15);
		}
		return SUCCESS;
	}

	/**
	 * 第一次请求展现列表时调用Service层查找所有TPwUser用户列表
	 */
	public String getAllTPwUserList() {
		this.list = tPwUserService.getAllTPwUser();
		count = list.size();
		pageCount = count / 15;
		if (count == 0) {
			return SUCCESS;
		} else if (count < 15) {
			pageCount = 1;
			this.list = list.subList((page - 1) * 15, count - 1);
			return SUCCESS;
		} else {
			if (count % 15 != 0) {
				pageCount = pageCount + 1;
			}
			this.list = list.subList((page - 1) * 15, page * 15);
			return SUCCESS;
		}
	}


 

3:参照Struts.xml 片段

 

		<!-- 第一次请求获得数据列表Action -->
		<action name="TPwUserList"
			class="TPwUserAction" method="getAllTPwUserList">
			<result name="success">/jsp/TPwUser/TPwUserList.jsp</result>
			<result name="error">/regist.jsp</result>
		</action>
		
		<!-- 翻页时请求Action -->
		<action name="pageTPwUserList"
			class="TPwUserAction" method="pageSelect">
			<result name="success">/jsp/TPwUser/TPwUserList.jsp</result>
			<result name="error">/regist.jsp</result>
		</action>


 

注释:

Struts.xml中配置的第二个action,method属性对应的是jsp页面中js中请求的地址中的方法。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值