zoukankan      html  css  js  c++  java
  • Mybatis的PageHelper分页插件的PageInfo的属性参数,成员变量的解释,以及页面模板

    作者:故事我忘了
    个人微信公众号:程序猿的月光宝盒

    //当前页
    private int pageNum;
    //每页的数量
    private int pageSize;
    //当前页的数量
    private int size;
    //总页数
    private int pages;
    //第一页
    private int firstPage;
    //上一页
    private int prePage;
    //下一页
    private int nextPage;
    //总记录数
    private long total;
    
    //由于startRow和endRow不常用,这里说个具体的用法
    //可以在页面中"显示startRow到endRow 共size条数据"
    //当前页面第一个元素在数据库中的行号
    private int startRow;
    //当前页面最后一个元素在数据库中的行号
    private int endRow;
    
    //结果集
    private List<T> list;
     
    //是否为第一页
    private boolean isFirstPage = false;
    //是否为最后一页
    private boolean isLastPage = false;
    //是否有前一页
    private boolean hasPreviousPage = false;
    //是否有下一页
    private boolean hasNextPage = false;
    //导航页码数
    private int navigatePages;
    //所有导航页号
    private int[] navigatepageNums;
    //导航条上的第一页
    private int navigateFirstPage;
    //导航条上的最后一页
    private int navigateLastPage;
    

    项目中使用了Mybatis的PageHelper分页插件后的js文件

    /**
     * 初始化首页数据
     */
    function initData(pageNo) {
        //清空原来的数据,找到第一个以外的tr,并移除,用 :gt()
        $("tr:gt(0)").remove();
        $.ajax({
            url: "showInvi.do",
            type: "post",
            dataType: "json",
            data: {"pageNo": pageNo},
            async: true,
            success: function (obj) {
                console.log(obj);
                if (obj.size === 0) {//如果没有数据
                    var str = `
                        <tr>
                            <td colspan="5">没有符合条件的数据</td>
                        </tr>
                    `;
                    $("#dataTble").append(str);
                    $("p").html("");
                } else {
                    $.each(obj.list, function (i) {
                        var str = `
                <tr>
                    <td>${obj.list[i].title}</td>
                    <td>${obj.list[i].summary}</td>
                    <td>${obj.list[i].author}</td>
                    <td>${obj.list[i].createdate}</td>
                    <td>
                        <a href="/showReply.html?invid=${obj.list[i].id}">查看回复</a>||<a href="javascript:void(0);" onclick="del(${obj.list[i].id},'${obj.list[i].title}');">删除</a>
                    </td>
                </tr>          
                    `;
                        $("#dataTble").append(str);
                    });
                    $("tr:gt(0):odd").attr("style", "background-color:#90EE90");
                    //分页,我是放在一个p标签里
                    var pageFoot = $("p");
    
                    //在分页前,清空原来分页的内容
                    pageFoot.html("");
                    var pageStr = "";
                    if (obj.total === 0) {//如果没有数据,就不显示分页条
                        return;
                    }
                    if (obj.isFirstPage && obj.hasNextPage) {//如果是第一页,并且还有下一页
                        pageStr = `
                    <a href="javascript:void(0);" style="text-decoration: none;color: grey;cursor:no-drop;">首&nbsp;页</a>|
                    <a href="javascript:void(0);" style="text-decoration: none;color: grey;cursor:no-drop;"><< 上一页</a>|
                    <a href="javascript:void(0);" onclick="initData(${obj.nextPage});">下一页>></a>|
                    <a href="javascript:void(0);" onclick="initData(${obj.pages});">尾&nbsp;页</a>
                    `
                    } else if (obj.isFirstPage && !obj.hasNextPage) {//如果是第一页,并且没有下一页
                        pageStr = ``//nothing to do
                    } else if (!obj.isFirstPage && obj.hasNextPage) {//如果不是第一页,并且还有下一页
                        pageStr = `
                    <a href="javascript:void(0);" onclick="initData(1)">首&nbsp;页</a>|
                    <a href="javascript:void(0);" onclick="initData(${obj.prePage});"><< 上一页</a>|
                    <a href="javascript:void(0);" onclick="initData(${obj.nextPage});">下一页>></a>|
                    <a href="javascript:void(0);" onclick="initData(${obj.pages});">尾&nbsp;页</a>
                    `
                    } else if (!obj.isFirstPage && !obj.hasNextPage) {//如果不是第一页,且没有下一页
                        pageStr = `
                    <a href="javascript:void(0);" onclick="initData(${obj.firstPage});">首&nbsp;页</a>|
                    <a href="javascript:void(0);" onclick="initData(${obj.prePage});"><< 上一页</a>|
                    <a href="javascript:void(0);" style="text-decoration: none;color: grey;cursor:no-drop;">下一页>></a>|
                    <a href="javascript:void(0);" style="text-decoration: none;color: grey;cursor:no-drop;">尾&nbsp;页</a>
                    `
                    }
                    pageStr += `
                第&nbsp;
                    ${obj.pageNum}
                    页/共
                    ${obj.pages}
                    页(${obj.total}条)
                `;
                    pageFoot.append(pageStr);
                }
            }, error: function () {
                alert("initData error");
            }
        })
    }
    

    基本上分页部分可以作为模板

    他对应的html


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <center>
        <h1>帖子列表</h1>
        <hr/>
        <form id="findInvis">
            帖子标题:
            <input title="请输入帖子标题" name="title">
            <!--input的类型还是submit-->
            <input type="submit" value="搜索" >
        </form>
        <div id="infos">
            <br/>
            <table border="1" style=" 100%;text-align: center" id="dataTble">
                <tr style="background-color: #6FABC1;">
                    <td>标题</td>
                    <td>内容摘要</td>
                    <td>作者</td>
                    <td>发布时间</td>
                    <td>操作</td>
                </tr>
            </table>
            <p></p>
        </div>
    </center>
    <script rel="script" type="text/javascript" src="js/jquery-1.11.2.min.js"></script>
    <script rel="script" type="text/javascript" src="js/list.js"></script>
    </body>
    </html>
    

    对应的ServiceImpl

    @Override
        public PageInfo<Map<String, Object>> selectByPrimaryKey(Integer invid,Integer pageNo) {
            PageHelper.startPage(pageNo,4);
            List<Map<String, Object>> maps = replyDetailMapper.selectByPrimaryKey(invid);
            return new PageInfo<> (maps);
        }
    

    对应的Controller,是标注@RestController

    @RequestMapping("/showInvi.do")
        public PageInfo<Map<String, Object>> selectByTitle(Invitation invitation,Integer pageNo) {
            return invitationService.selectByTitle(invitation,pageNo);
        }
    

    页面分页模板部分

     success : function(obj) {
                console.log(obj);
                var strData ="";
                //在循环的前面清空标题以下的所有行
                //获取行>1的那行.调用移除方法
                $("tr:gt(1)").remove();
                $.each(obj.list,function (i) {
                 strData +=`
                        <tr>
                            <th>${obj.list[i].id}</th>
                            <th>${obj.list[i].name}</th>
                            <th>${obj.list[i].age}</th>
                            <th>${obj.list[i].gender}</th>
                            <th>${obj.list[i].telephone}</th>
                            <th>${obj.list[i].email}</th>
                            <th>${obj.list[i].cname}</th>
                            <th>
                                <a href="updates.html?id=${obj.list[i].id}">更新</a>
                                <a href="javascript:void(0);" onclick="del(${obj.list[i].id})">删除</a>
                            </th>
                        </tr>
                    `;
                });
                //找到table,并拼接
                $("table").append(strData);
                //分页
                //在分页前,清空原来分页的内容
                $("p").html("");
                var pageStr = "";
                if (obj.total === 0) {//如果没有数据,就不显示分页条
                    return;
                }
                if (obj.isFirstPage && obj.hasNextPage) {//如果是第一页,并且还有下一页
                    pageStr = `
                    <a href="javascript:void(0);" style="text-decoration: none;color: grey;cursor:no-drop;">首&nbsp;页</a>|
                    <a href="javascript:void(0);" style="text-decoration: none;color: grey;cursor:no-drop;"><< 上一页</a>|
                    <a href="javascript:void(0);" onclick="initData(${obj.nextPage});">下一页>></a>|
                    <a href="javascript:void(0);" onclick="initData(${obj.pages});">尾&nbsp;页</a>
                    `
                } else if (obj.isFirstPage && !obj.hasNextPage) {//如果是第一页,并且没有下一页
                    pageStr = ``//nothing to do
                } else if (!obj.isFirstPage && obj.hasNextPage) {//如果不是第一页,并且还有下一页
                    pageStr = `
                    <a href="javascript:void(0);" onclick="initData(1)">首&nbsp;页</a>|
                    <a href="javascript:void(0);" onclick="initData(${obj.prePage});"><< 上一页</a>|
                    <a href="javascript:void(0);" onclick="initData(${obj.nextPage});">下一页>></a>|
                    <a href="javascript:void(0);" onclick="initData(${obj.pages});">尾&nbsp;页</a>
                    `
                } else if (!obj.isFirstPage && !obj.hasNextPage) {//如果不是第一页,且没有下一页
                    pageStr = `
                    <a href="javascript:void(0);" onclick="initData(${obj.firstPage});">首&nbsp;页</a>|
                    <a href="javascript:void(0);" onclick="initData(${obj.prePage});"><< 上一页</a>|
                    <a href="javascript:void(0);" style="text-decoration: none;color: grey;cursor:no-drop;">下一页>></a>|
                    <a href="javascript:void(0);" style="text-decoration: none;color: grey;cursor:no-drop;">尾&nbsp;页</a>
                    `
                }
                pageStr += `
                第&nbsp;
                    ${obj.pageNum}
                    页/共
                    ${obj.pages}
                    页(${obj.total}条)
                `;
                $("p").append(pageStr);
            },
    
  • 相关阅读:
    乐观锁+悲观锁
    python读取大文件处理方式
    ionic集成jPush极光推送
    AngularJs中$http发送post或者get请求,SpringMVC后台接收不到参数值的解决办法
    ionic开发插件之ngCordova配置安装(搬运)
    使用Ionic进行移动端APP开发
    HashMap,LinkedHashMap,TreeMap的区别
    ubuntu下node、npm、bower简易安装
    Mongodb数据更新命令(update、save)
    mongoDb地理空间索引和查询
  • 原文地址:https://www.cnblogs.com/jsccc520/p/12000730.html
Copyright © 2011-2022 走看看