post请求:jsp模拟数据库分页

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
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>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
  </head>
  
  <body>
    <%
    	List list = new ArrayList();
    	list.add(1);
    	list.add(2);
    	list.add(3);
    	list.add(4);
    	list.add(5);
    	
    	int currentPage = 1;
    	String currentPageStr = request.getParameter("currentPage");
    	//这里也可以用异常处理
    	if(currentPageStr != null && !"".equals(currentPageStr)){
    		currentPage = Integer.valueOf(currentPageStr);
    	}
    	
    	//拿当前页和每页条数来计算start(开始索引)和end(结束索引)
    	int pageSize = 2;
    	int allPages = list.size() / pageSize + 1;
    	int start = (currentPage - 1) * pageSize; 
    	int end = currentPage * pageSize;
    	if(end > list.size()){
    		end = list.size();
    	}
    	//最后一个不包含,如[0,2)是不包含2
    	list = list.subList(start,end);
    	
    	request.setAttribute("list",list);
    	request.setAttribute("currentPage",currentPage);
    	request.setAttribute("allPages",allPages);
     %>
     
     <c:forEach var="x" items="${list}">
     	${x }
     </c:forEach>
     <br>
     
     <form action="" method="post" id="myForm">
     	<input type="hidden" name="currentPage" id="currentPage">
     </form>
     
     <a href="javascript:void(0)" οnclick="forwardPage(1)">首页</a>♣
     <a href="javascript:void(0)" οnclick="forwardPage(${currentPage == 1 ? 1 : currentPage - 1})">上页</a>♣
     <a href="javascript:void(0)" οnclick="forwardPage(${currentPage == allPages ? allPages : currentPage + 1})">下页</a>♣
     <a href="javascript:void(0)" οnclick="forwardPage(${allPages })">尾页</a>♣
     <script type="text/javascript">
     	//方法名为$(id),主要为了模拟jquery,也为了调用方便
     	function $(id){
     		//返回该对象
     		return document.getElementById(id);
     	}
     	
     	function forwardPage(currentPage){
     		$("currentPage").value = currentPage;
     		//设置表单提交
     		$("myForm").submit();
     	}
     </script>
  </body>
</html>

list的分页 import java.util.ArrayList; import java.util.List; import com.jsp.vo.Client; /** * PageBean * * @author apple * */ public class Page { private int currentPage; // 当前页数 private int totalPages; // 总页数 private int pageRows =8; // 每页显示记录数 private int totalRows; // 总数据数 private int specPages; // 指定页数 private int pageStartRow ; // 每页的起始数 private int pageEndRow; // 每页的终止数 private boolean hasNextPage; // 是否有下一页 private boolean hasPreviousPage; // 是否有前一页 private List list; /** * 初始化对象 * * @param tempList * 结果集 * */ public Page(List tempList,int pageRows) { this.list = tempList; this.pageRows = pageRows; this.totalRows = tempList.size(); this.currentPage = 1; // 获取总页数 if ((totalRows % pageRows) == 0) { totalPages = totalRows / pageRows; if(this.totalRows == 0 ){ this.pageRows = 0; } } else { totalPages = totalRows / pageRows + 1; } this.hasPreviousPage = false; // 是否有下一页 if (currentPage == totalPages) { hasNextPage = false; } else { hasNextPage = true; } this.pageStartRow = 0; if (totalRows < pageRows) { this.pageEndRow = totalRows; } else { this.pageEndRow = pageRows; } } /** * 获取当前页的对象集合 * * @return List 对象集合 */ public List getCurrentPageList() { if (currentPage * pageRows < totalRows) { pageEndRow = currentPage * pageRows; pageStartRow = pageEndRow - pageRows; } else { pageEndRow = totalRows; pageStartRow = pageRows * (totalPages - 1); } List pageList = new ArrayList(); for (int i = pageStartRow; i < pageEndRow; i++) { pageList.add(list.get(i)); } return pageList; } /** * 获取上一页的对象集合 * * @return List 对象集合 */ public List getPreviousPage() { currentPage--; if (currentPage = totalPages) { hasNextPage = false; } else { hasNextPage = true; } if (
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值