用java写的分页,数据有12条,每页显示2条,结果页面只有两页的内容。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用java写的分页,数据有12条,每页显示2条,结果页面只有两页的内容。相关的知识,希望对你有一定的参考价值。

用java写的分页,数据有12条,每页显示2条,结果页面只有两页的内容。数据是全部获取到了,就是显示不出来,只能显示两页。

参考技术A 你的getPage和queryOrder的name是不匹配的;
最好是设置断点,搞清楚第一页和下一页的sql是否有问题,总数的sql和list的sql是否一致
参考技术B 把list内容输出,把all输出,看看是不是all的数据不对,导致页数少了。追问

每页4行,一共4页,结果是对是,说明all值是对的

追答

你的all应该返回总记录条数吧,应该是16啊

追问

all是页数,不是数据条数

参考技术C 你最好debug一下,看看是数据问题还是展示问题,我觉得是参数传错了。 参考技术D 详细要求有吗?帮你。 第5个回答  2019-09-28 queryOrder方法的代码呢,你在下面打桩输出list的长度追问

追答

你的getPage的SQL语句没问题么?

django的分页--不全也未实现

一、Django内置分页

Paginator

 

二、自定义分页

分页功能在每个网站都是必要的,对于分页来说,其实就是根据用户的输入计算出应该在数据库表中的起始位置。

1、设定每页显示数据条数

2、用户输入页码(第一页、第二页...)

3、根据设定的每页显示条数和当前页码,计算出需要取数据表的起始位置

4、在数据表中根据起始位置取值,页面上输出数据


需求又来了,需要在页面上显示分页的页面。如:[上一页][1][2][3][4][5][下一页]

1、设定每页显示数据条数

2、用户输入页码(第一页、第二页...)

3、设定显示多少页号

4、获取当前数据总条数

5、根据设定显示多少页号和数据总条数计算出,总页数

6、根据设定的每页显示条数和当前页码,计算出需要取数据表的起始位置

7、在数据表中根据起始位置取值,页面上输出数据

8、输出分页html,如:[上一页][1][2][3][4][5][下一页]

技术分享
#!/usr/bin/env python
# _*_coding:utf-8_*_
from django.utils.safestring import mark_safe
 
class PageInfo(object):
    def __init__(self,current,totalItem,peritems=5):
        self.__current=current
        self.__peritems=peritems
        self.__totalItem=totalItem
    def From(self):
        return (self.__current-1)*self.__peritems
    def To(self):
        return self.__current*self.__peritems
    def TotalPage(self):  #总页数
        result=divmod(self.__totalItem,self.__peritems)
        if result[1]==0:
            return result[0]
        else:
            return result[0]+1
 
def Custompager(baseurl,currentPage,totalpage):  #基础页,当前页,总页数
    perPager=11
    #总页数<11
    #0 -- totalpage
    #总页数>11
        #当前页大于5 currentPage-5 -- currentPage+5
            #currentPage+5是否超过总页数,超过总页数,end就是总页数
        #当前页小于5 0 -- 11
    begin=0
    end=0
    if totalpage <= 11:
        begin=0
        end=totalpage
    else:
        if currentPage>5:
            begin=currentPage-5
            end=currentPage+5
            if end > totalpage:
                end=totalpage
        else:
            begin=0
            end=11
    pager_list=[]
    if currentPage<=1:
        first="<a href=‘‘>首页</a>"
    else:
        first="<a href=‘%s%d‘>首页</a>" % (baseurl,1)
    pager_list.append(first)
 
    if currentPage<=1:
        prev="<a href=‘‘>上一页</a>"
    else:
        prev="<a href=‘%s%d‘>上一页</a>" % (baseurl,currentPage-1)
    pager_list.append(prev)
 
    for i in range(begin+1,end+1):
        if i == currentPage:
            temp="<a href=‘%s%d‘ class=‘selected‘>%d</a>" % (baseurl,i,i)
        else:
            temp="<a href=‘%s%d‘>%d</a>" % (baseurl,i,i)
        pager_list.append(temp)
    if currentPage>=totalpage:
        next="<a href=‘#‘>下一页</a>"
    else:
        next="<a href=‘%s%d‘>下一页</a>" % (baseurl,currentPage+1)
    pager_list.append(next)
    if currentPage>=totalpage:
        last="<a href=‘‘>末页</a>"
    else:
        last="<a href=‘%s%d‘>末页</a>" % (baseurl,totalpage)
    pager_list.append(last)
    result=‘‘.join(pager_list)
    return mark_safe(result)   #把字符串转成html语言
分页实例

总结,分页时需要做三件事:

  • 创建处理分页数据的类
  • 根据分页数据获取数据
  • 输出分页HTML,即:[上一页][1][2][3][4][5][下一页]

以上是关于用java写的分页,数据有12条,每页显示2条,结果页面只有两页的内容。的主要内容,如果未能解决你的问题,请参考以下文章

oracle分页查询语句怎么写每页查询10条

java&sql的分页怎么做?

django的分页--不全也未实现

数据库的分页语句

mysql——分页技术实现(基于layui框架)

6 基于Servlet 的分页