• 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);
    }
    }
     
  • 相关阅读:
    javascript高级编程笔记第五章
    关于form表单:hover没有修改表单子元素样式
    JavaScript 生成 对应的protobuf 对象
    ProtoBuf Maven 整合 用来生成对象
    NettyClient 连接 WebSocket
    Exception in thread "Thread-5" java.lang.NoSuchMethodError: io.netty.util.concurrent.SingleThreadEventExecutor异常处理
    Jsonp 使用 爬取 可直接解析页面
    OpenResty 配置SSL 同时支持http 全部转发到 https中
    Nginx(OpenResty)+Lua+Redis IP限流 10s内
    NginxUrl校验路径token+时间戳
  • 原文地址:https://www.cnblogs.com/fpflog/p/12048602.html
Copyright © 2020-2023  润新知