注:
以下介绍的分页为简单的分页,适合数据量小的模块。如果查询展现的数据量非常大,此分页实现不适合。
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中请求的地址中的方法。