jfinal的分页



分页的SQL语句

mysql数据库,可以采用limit语句进行分页。

oracle数据库,可以采用rownum的方式进行分页。

JFinal自带分页

对象.dao.paginate(pageNumber,pageSize,select,sqlException)

//pageNumber 第几页

//pageSize 一页几条记录

controller的某个方法:
[java] view plain copy
1.int pageNumber;          //p为指定跳转的页面 
2.        if(getParaToInt("pn")==null) //前端通过pn传参 
3.        int pageSize;           //指定每一页的显示数量 
4.        if(getParaToInt("ps")==null) //对一页的数量的参数进行处理 
5.         
6.        Page<Order> list4 = Order.dao.paginate(pageNumber, pageSize,"select *", "from scjhgl_xsdd");  //所有订单 
7.        int x=list4.getTotalPage();  //共展示的页数 
8.        int y=list4.getPageSize();   //页码的大小 
9.        int z=list4.getTotalRow();   //数据库中数据总共的条数 
10.         
11.        String skip=""; 
12.        for(int q=1;q<=x;q++) 
13.        { 
14.            skip=skip+"<a href=\"scjhgl/index?pn="+q+"&ps="+y+"\">"+q+"</a>" ;  //循环把链接输出 1 2 3 ,  &nbsp;&nbsp空格,传ps参数是避免修改pageSize后恢复页面数改变 
15.        } 
16.        setAttr("iteration4", list4);     //设置iteration4集合供前端页面获取数据库数据 
17.        setAttr("pn",pageNumber);   //当前页面号供前端获取 
18.        setAttr("TotalPage",x); 
19.        setAttr("PageSize",y); 
20.        setAttr("TotalRow",z); 
21.        setAttr("skip",skip);  //数字链接 
22.        renderFreeMarker("ddxi.html"); 

前端如果使用的是jsp页面可以如下显示:
[java] view plain copy
1.<div class="pull-right"> 
2.    <div class="dataTables_paginate paging_simple_numbers" id="dynamic-table_paginate"> 
3.        <ul class="pagination"> 
4.            <li><a href="scjhgl/index?pageNumber=${iteration4.pageNumber>1?iteration4.pageNumber-1:1}">上一页</a></li> 
5.                <c:forEach begin="1" end="iteration4.totalPage" varStatus="page"> 
6.                <c:choose> 
7.                    <c:when test="iteration4.pageNumber==page.index"> 
8.                        <li class="active"><a href="scjhgl/index?pageNumber=${page.index}">${page.index}</a></li> 
9.                    </c:when> 
10.                    <c:otherwise> 
11.                        <li><a href="scjhgl/index?pageNumber=${page.index}">${page.index}</a></li> 
12.                    </c:otherwise> 
13.                </c:choose> 
14.                </c:forEach> 
15.            <li><a href="scjhgl/index?pageNumber=${iteration4.pageNumber<iteration4.totalPage?iteration4.pageNumber+1:iteration4.totalPage}}">下一页</a></li> 
16.        </ul> 
17.    </div> 
18. 
19.</div> 

controller可以如下:
[java] view plain copy
1.<span style="white-space: pre;">        </span>Integer pageNumber = getParaToInt("pageNumber"); 
2.        if(pageNumber=null) pageNumber=1; 
3.        Page<Order> list4 = Order.dao.paginate(pageNumber, 5,"select *", "from scjhgl_xsdd");  //所有订单 
4.        setAttr("iteration4",list4); 
5.        render("ddxi.jsp"); 
6.         

这里给大家分享当初学JFinal时看的学习视频链接:

链接: https://pan.baidu.com/s/1nvRVPm5 密码: 1234

我后来的分页是用JQuery写的,现在前端的主流搭配应该是HTML+JQuery,就算要使用jsp也可以搭配JQuery,所以分页完全可以使用JQuery来实现,代码也给大家分享下:

[html] view plain copy
1.<div class="tab-pane" id="tab1"> 
2.    <table class="table table-hover table-bordered table-striped"> 
3.        <tr bgcolor="#E7E7E7"> 
4.            <td height="24" colspan="6">审核新闻</td> 
5.        </tr> 
6.        <tr align="center" bgcolor="#F4F8FB" height="22"> 
7.            <td width="6%">序号</td> 
8.            <td width="24%">文章标题</td> 
9.            <td width="18%">录入时间</td> 
10.            <td width="8%">栏目</td> 
11.            <td width="6%">录入者</td> 
12.            <td width="12%">操作</td> 
13.        </tr> 
14. 
15. 
16.        <tbody id="table_2"></tbody> 
17. 
18. 
19.        <tr> 
20.            <td height="24" colspan="6"></td> 
21.        </tr> 
22.    </table> 
23. 
24. 
25.    <div class="pagination"> 
26.        <!-- 分页 --> 
27.        <div class="text-right"> 
28.            <ul id="pagefoot2"> 
29. 
30. 
31.            </ul> 
32.        </div> 
33.    </div> 

<script type="text/javascript"> 
2.                        function SHXW(data) { //审核新闻 
3.                            var dataStr = ""; 
4.                            $.each(data,function(i, a) { 
5.                                                $.each(a.paginate.list,function(i, v) { //v. _ t_news表数据   a.paginate.list    v 
6.                                                                    dataStr += '<tr>'; 
7.                 
8.                                                                    dataStr += '<td>' + v.id + '</td>'; 
9.                                                                    dataStr += '<td>' + v.title + '</td>'; 
10.                                                                    dataStr += '<td>' + v.createTime + '</td>'; 
11.                                                                    dataStr += '<td>' + v.newsType_id + '</td>'; 
12.                 
13.                                                                    dataStr += '<td>'; 
14.                                                                    $.each(a.account, function(i, m) { //  m. _t_user表数据  a.account --> m 
15.                                                                        if (m.id == v.user_id) 
16.                                                                            dataStr += m.name;  
17.                                                                    }) 
18.                                                                    dataStr += '</td>'; 
19.                 
20.                                                                    dataStr += '<td><a href="javascript:Accept('+v.id+')" target="_top" class="btn btn-primary">通过</a>  <a href="javascript:Reject('+v.id+')" target="_top" class="btn btn-danger">不通过</a></td>'; 
21.                 
22.                                                                    dataStr += '</tr>'; 
23.                                                                }) 
24.                                                }) 
25.                                                $("#table_2").html(dataStr); //填充 
26.                                            } 
27.                                             
28.                                            function PageFoot2(data) { 
29.                                                var n = ""; 
30.                                                var backword = "上一页"; 
31.                                                var forword = "下一页"; 
32.                                                var x = data.PageNumber; //当前页 
33.                                                var back; //前一页 
34.                                                var next; //后一页 
35.                                                if (x = 1) { //对上一页的判断       
36.                                                    back = 1; 
37.                                                } else { 
38.                                                    back = x - 1; 
39.                                                } 
40.                                                if (x < data.totalPage) { //对下一页判断 
41.                                                    next = x + 1; 
42.                                                } else { 
43.                                                    next = data.totalPage; 
44.                                                } 
45.                                     
46.                                                n += "<li onclick=\"showPage2(" + back + ")\"><a>" + backword 
47.                                                        + "</a></li>  "; 
48.                                                for ( var a = 1; a <= data.totalPage; a++) { 
49.                                                    if (a == data.PageNumber) { 
50.                                                        n += "<li class=\"active\" onclick=\"showPage2(" + a 
51.                                                                + ")\"><a>" + a + "</a></li>  "; 
52.                                                    } else { 
53.                                                        n += "<li onclick=\"showPage2(" + a + ")\"><a>" + a 
54.                                                                + "</a></li>  "; 
55.                                                    } 
56.                                                    ; 
57.                                                } 
58.                                                n += "<li onclick=\"showPage2(" + next + ")\"><a>" + forword 
59.                                                        + "</a></li>  "; 
60.                                     
61.                                                $("#pagefoot2").html(n); //把循环好的页码给替换掉 
62.                                            }; 
63.                                     
64.                                            function showPage2(curr) { 
65.                                                $.get("SH", {"pageNumber" : curr}, function(data) { 
66.                                                    SHXW(data); 
67.                                                    PageFoot2(data[0].paginate); //调用的PageFoot方法,循环输出页码连接   
68.                                                }); 
69.                                            } 
70.                                            showPage2(1); //刚进入页面为第一页,列出第一页数据和页脚 
71.                                             
72.                                            function Accept(id) { 
73.                                                        layer.confirm("确认通过?", function () { 
74.                                                            // $.updateByUrl("user/Accept?id="+id); 
75.                                                            window.location.href="Accept?id="+id; 
76.                                                        }); 
77.                                                } 
78.                                            function Reject(id) { 
79.                                                        layer.confirm("确认废除?", function () { 
80.                                                            // $.updateByUrl("user/Reject?id="+id); 
81.                                                            window.location.href="Reject?id="+id; 
82.                                                        }); 
83.                                                } 
84.                    </script> 

[java] view plain copy
1.public void SH(){ 
2.        Page<?> dataPage= Db.paginate(getParaToInt("pageNumber", 1), 5, "SELECT *","FROM t_news where state=0");   // t_news表所有未审核数据 
3.         List<Account> acc = Account.dao.find("select * from t_user");        // 用户表所有信息,这里审核应该列出所有用户的信息 
4.         Map<String, Object> map1= new HashMap<String, Object>(); 
5.            map1.put("paginate", dataPage); 
6.            map1.put("account", acc); 
7.            List<Object> data = new ArrayList<Object>(); 
8.            data.add(map1); 
9.            renderJson(data); 
10.    } 

[html] view plain copy
1.<pre snippet_file_name="blog_20170308_5_4948784" code_snippet_id="2252264"></pre> 
2.<pre></pre> 
3.<pre></pre> 
4.<pre></pre> 



猜你喜欢

转载自blog.csdn.net/laiyuan999/article/details/78708951