java 分页

jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<link href="css/bootstrap.min.css" rel="stylesheet">

<!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
<!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
<!--[if lt IE 9]>
<!--<script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>-->
<![endif]-->
<script src="js/jquery-3.2.1.min.js"></script>
<!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
<script src="js/bootstrap.min.js"></script>
<title>index</title>
<style>
.table {

float: left;

}


.se{
float: left;
margin-left: 170px;
margin-top: 50px;
}
th,td{
text-align:center;
}
.caozuo{
float: right;
margin-top: 50px;
margin-right: 150px;
}
</style>
<script>

function delecte(id) {
if (confirm("您确定要删除吗?")){
location.href="${pageContext.request.contextPath}/userDelServlet?id="+id;
}

}
function update(id) {
location.href="${pageContext.request.contextPath}/userIdSelectServlet?id="+id;

}
window.onload=function () {
//获取按钮id
document.getElementById("delSelected").onclick=function () {

if(confirm("您确定要删除选中数据吗?")){
var flag=false;
var uids = document.getElementsByName("uid");
for(var i=1;i<uids.length;i++){
//判断是否选中数据,若数据有选中改变标识进行提交,若标识未改变不进行表单提交
if(uids[i].checked){
flag=true;
break;
}

}
if(flag){
//进行表单的提交,获取表单id
var form = document.getElementById("form");
//提交表单
form.submit();
}

}

}
//给第一个选择框添加点击事件,设置全选全消功能
document.getElementById("firstcb").onclick=function () {
var uids = document.getElementsByName("uid");
for(var i=0;i<uids.length;i++){
uids[i].checked=this.checked
}
}

}

</script>
</head>
<body>
<div align="center" style="font-size: 30px;"><center>用户信息表</center></div>
<div align="center" class="sel">
<div class="se">
<form class="form-inline" action="" method="post">
<div class="form-group">
<label for="exampleInputName2">姓名</label>
<input type="text" class="form-control" name="name" id="exampleInputName2" >
</div>
<div class="form-group">
<label for="exampleInputDept2">部门</label>
<input type="text" class="form-control" name="deptid" id="exampleInputDept2" >
</div>
<button type="submit" class="btn btn-default">查询</button>
</form>
</div>
<div class="caozuo">
<a class="btn btn-default" href="${pageContext.request.contextPath}/UserAdd.jsp" role="button">添加信息</a>
<a class="btn btn-default" href="javascript:void(0);" id="delSelected" role="button">删除选项</a>
</div>

</div>
<div class="container">
<form id="form" action="${pageContext.request.contextPath}/delUsersServlet">
<table class="table table-hover table-condensed table-bordered" align="center">

<tr style="background-color: #b2dba1;text: center" >
<th><label class="checkbox-inline">
<input type="checkbox" name="uid" id="firstcb">
</label></th>
<th>序号</th>
<th>姓名</th>
<th>组织序号</th>
<th>部门序号</th>
<th>日期</th>
<th>操作</th>
</tr>
<c:forEach items="${pb.listDate}" varStatus="list" var="lis">
<tr>
<td><label class="checkbox-inline">
<input type="checkbox" name="uid" value="${lis.id}">
</label></td>
<td>${list.count}</td>
<td>${lis.name}</td>
<td>${lis.orgid}</td>
<td>${lis.deptid}</td>
<td>${lis.createdate}</td>
<td><a class="btn btn-default" href="javascript:update(${lis.id});" role="button">修改</a>
<a class="btn btn-default" href="javascript:delecte(${lis.id});" role="button">删除</a></td>
</tr>
</c:forEach>
</table>
</form>
</div>
<div class="container">
<nav aria-label="Page navigation">
<ul class="pagination">
<c:if test="${pb.currentPage==1}">
<li class="disabled">
</c:if>
<c:if test="${pb.currentPage!=1}">
<li>
</c:if>
<a href="${pageContext.request.contextPath}/pageServlet?currentPage=${pb.currentPage-1}&rows=2" aria-label="Previous">
<span aria-hidden="true">&laquo;</span>
</a>
</li>
<c:forEach begin="1" end="${pb.totalPage}" var="i">
<c:if test="${pb.currentPage==i}">
<li class="active"><a href="${pageContext.request.contextPath}/pageServlet?currentPage=${i}&rows=2">${i}</a></li>
</c:if>
<c:if test="${pb.currentPage!=i}">
<li><a href="${pageContext.request.contextPath}/pageServlet?currentPage=${i}&rows=2">${i}</a></li>
</c:if>

</c:forEach>

<c:if test="${pb.currentPage==pb.totalPage}">
<li class="disabled">
</c:if>
<c:if test="${pb.currentPage!=pb.totalPage}">
<li>
</c:if>
<a href="${pageContext.request.contextPath}/pageServlet?currentPage=${pb.currentPage+1}&rows=2" aria-label="Next">
<span aria-hidden="true">&raquo;</span>
</a>
</li>
<span style="font-size: 20px">
&nbsp;&nbsp;&nbsp;&nbsp;共${pb.totalCount}条记录,共${pb.totalPage}页
</span>
</ul>
</nav>
</div>
</body>
</html>

JavaBean

import java.util.List;

public class PageBean1<T> {
private int totalPage;//总页数
private int totalCount;//总条数
private int currentPage;//当前页
private int rows;//每页展示的条数
private List<T> listDate;//每页展示的数据

public int getTotalPage() {
return totalPage;
}

public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}

public int getTotalCount() {
return totalCount;
}

public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}

public int getCurrentPage() {
return currentPage;
}

public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}

public int getRows() {
return rows;
}

public void setRows(int rows) {
this.rows = rows;
}

public List<T> getListDate() {
return listDate;
}

public void setListDate(List<T> listDate) {
this.listDate = listDate;
}
}

Dao

import com.fpf.bean.PageBean;
import com.fpf.bean.PageBean1;
import com.fpf.bean.User;
import com.fpf.face.PageDao;
import com.fpf.util.JDBCUtil;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;

import java.util.List;

public class PageDaoImp implements PageDao{
private JdbcTemplate template=new JdbcTemplate(JDBCUtil.getDataSource());

@Override
public int tatolCount() {
String sql="select count(*) from user";

return template.queryForObject(sql,Integer.class);
}

@Override
public List<User> pageList(int start, int rows) {
String sql="select * from user limit ?,?";

return template.query(sql,new BeanPropertyRowMapper<User>(User.class),start,rows);
}

}

Service

import com.fpf.bean.PageBean1;
import com.fpf.bean.User;
import com.fpf.dao.PageDaoImp;
import com.fpf.face.PageService;

import java.util.List;

public class PageServiceImp implements PageService{
PageDaoImp pageDaoImp=new PageDaoImp();
@Override
public int totalCount() {
return 0;
}

@Override
public PageBean1<User> pageList(String _currentPage, String _rows) {
//定义PageBean1对象
PageBean1<User>pb=new PageBean1<User>();
//获取表中数据总条数
int totalCount = pageDaoImp.tatolCount();
pb.setTotalCount(totalCount);
//判断传入的当前页数据是否为空,若为空显示第一页
if(_currentPage==null||"".equals(_currentPage)){
_currentPage="1";
}
//判断传入的每页的条数,若为空赋一个值
if(_rows==null||"".equals(_rows)){
_rows="2";
}
//判断currentPage是否小于1

//进行数据转换
int currentPage = Integer.parseInt(_currentPage);
int rows = Integer.parseInt(_rows);
if(currentPage<=1){
currentPage=1;
}

pb.setRows(rows);
//计算总页数
int pageCount=(totalCount%rows)==0 ? (totalCount/rows):(totalCount/rows)+1;
//计算当前索引
pb.setTotalPage(pageCount);
if(currentPage>=pageCount){
currentPage=pageCount;
}
pb.setCurrentPage(currentPage);
int index=(currentPage-1)*rows;
List<User> userList = pageDaoImp.pageList(index, rows);
pb.setListDate(userList);


return pb;
}
}
Servlet


import com.fpf.bean.PageBean1;
import com.fpf.bean.User;
import com.fpf.service.PageServiceImp;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/pageServlet")
public class PageServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String currentPage = request.getParameter("currentPage");
String rows = request.getParameter("rows");
PageServiceImp pageServiceImp=new PageServiceImp();
PageBean1<User> pb = pageServiceImp.pageList(currentPage, rows);
request.setAttribute("pb",pb);
request.getRequestDispatcher("/index1.jsp").forward(request,response);

}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
}
 
原文地址:https://www.cnblogs.com/fpflog/p/12048602.html