文档章节

PageUtil 分页

薄暮凉年
 薄暮凉年
发布于 2015/08/07 11:31
字数 634
阅读 260
收藏 1

思路:首先用的是Mysql,主要分页是limit函数,limit第一个参数是从第几条开始(Mysql默认是从0开始),第二个是固定的,每页显示的条数。

PageUtil

属性:pageCount 每页显示的条数 、resultCount 一共有多少条、currentPage 当前页、totalPage 一共有多少页

方法:getCurrent(int currentPage,int pageCount)  用来计算limit的第一个参数,用(当前页数-1)*每页显示的条数

           getFooter(int resultCount,int pageCount,int currentPage)  用来显示分页的页脚,控制上一页下一页的显示

package com.liyi.test.util;


public class PageUtil {
    /**每页显示的条数**/
    private int pageCount;
    /**总共的条数**/
    private int resultCount;
    /**当前页**/
    private int currentPage;
    /**一共有多少页**/
    private int totalPage;
    public int getResultCount() {
        return resultCount;
    }
    public void setResultCount(int resultCount) {
        this.resultCount = resultCount;
    }
    public int getCurrentPage() {
        return currentPage;
    }
    public void setCurrentPage(int currentPage) {
        this.currentPage = currentPage;
    }
    
    
    public int getTotalPage() {
        return totalPage;
    }
    public void setTotalPage(int totalPage) {
        this.totalPage = totalPage;
    }
    
    public int getPageCount() {
        return pageCount;
    }
    public void setPageCount(int pageCount) {
        this.pageCount = pageCount;
    }
    
    public PageUtil() {
        // TODO Auto-generated constructor stub
    }
    /**
     * 计算从第几条开始
     * @param currentPage
     * @param pageCount
     * @return
     */
    public int getCurrent(int currentPage,int pageCount){
        return (currentPage-1)*pageCount;
    }
    
    public String getFooter(int resultCount,int pageCount,int currentPage){
        StringBuffer sb = new StringBuffer();
        if(resultCount>0&&pageCount>resultCount){
            totalPage = 1;
        }else if(resultCount>0&&pageCount<resultCount){
            totalPage = resultCount%pageCount==0?resultCount/pageCount:resultCount/pageCount+1;
        }else if(resultCount==0){
            totalPage = 0;
        }
        sb.append("共"+totalPage+"页").append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
        if(currentPage<=totalPage&&currentPage!=1){
            sb.append("<a href='javascript:void(0);' id='pre'>上一页</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
        }else{
            sb.append("上一页&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
        }
        sb.append("当前第<b id='current'>"+currentPage+"</b>页&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
        if(currentPage<totalPage){
            sb.append("<a href='javascript:void(0);' id='next'>下一页</a>").append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
        }else{
            sb.append("下一页").append("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
        }
        sb.append("共"+resultCount+"条");
        return sb.toString();
        
    }
}
@RequestMapping("/selectUserList")
    public ModelAndView selectUserList(HttpServletRequest request,@RequestParam 
                                        Map<String,Object> conds){
        Map<String,Object> map = new HashMap<String, Object>();
        int currentPage =1;
        //用于判断是前一页还是下一页
        String type = (String) conds.get("type");
        //用来接受页面的当前页数,如果初始化是1
        String current= (String) conds.get("currentPage");
        if(null!=type){
            if("1".equals(type)){
                if(null!=current){
                    currentPage =Integer.valueOf(current)+1;
                }
            }else if("2".equals(type)){
                if(null!=current){
                    currentPage =Integer.valueOf(current)-1;
                }
            }
            
        }
        //设置每页的条数
        int pageCount =3;
        map.put("pageCount",pageCount);
        //查询出来记录总条数用于分页计算
        int count = userService.getTotalPage();
        PageUtil page = new PageUtil();
        //用于计算Limit 第一个参数 根据当前页数
        map.put("currentPage",page.getCurrent(currentPage,pageCount));
        //下面页脚
        String footer = page.getFooter(count, pageCount, currentPage);
        List<UserPO> list = userService.findAll(map);
        ModelMap modelMap = new ModelMap();
        modelMap.addAttribute("list",list);
        modelMap.addAttribute("footer",footer);
        ModelAndView modelAndView = new ModelAndView("user/user_list",modelMap);
        return modelAndView;
    }
            $("#next").click(function(){
                var current=$("#current").html();
                window.location.href="${app}/userController/selectUserList.do?currentPage="+current+'&type=1';
            })
            
            $("#pre").click(function(){
                var current=$("#current").html();
                window.location.href="${app}/userController/selectUserList.do?currentPage="+current+'&type=2';
            })


© 著作权归作者所有

薄暮凉年
粉丝 32
博文 29
码字总数 15951
作品 0
朝阳
私信 提问
第一次加载显示全部的数据分页,然后可以按条件进行查询分页

public List queryVacate(final PageUtil pageUtil) { List list=new ArrayList(); list=getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session s......

yikong
2015/05/06
2.3K
0
【进展】为NetVinace 项目加入数据访问支持。统一服务层(业务逻辑层)入口,设计引入命令系统

因为工作的事情很多吗,已经好几天没上OSC了,我的NetVinace项目也荒废了好一段时间了。端午放假,一定要有一点更新才行。昨天,我花了一个下午,为项目加入了以下几项更新,虽然项目现在还是...

御风林海
2013/06/12
98
0
SpringMVC3.0+MyIbatis3.0(分页示例)【转】

主要使用Oracle的三层sql实现分页! 一 环境:XP3+Oracle10g+MyEclipse6+(Tomcat)+JDK1.5 二 工程相关图片: 1 DEMO图片 2 工程代码图片 3 相关jar包图片 三 此示例是在: SSI:SpringMVC3+Mybati...

如何让他和
2016/09/23
181
1
Hutool 3.2.2 发布,Java 工具集

Hutool 是一个Java工具包,提供了丰富的文件、日期、日志、正则、字符串、配置文件等工具方法,并封装了一套简单易用的ORM框架。 此次为一个小版本更新,主要修复bug~~ 希望大家可以为Hutoo...

路小磊
2017/12/03
1K
27
springmvc项目,jsp无法j解析,直接在页面打印jsp代码

我配置了一个spring+mybatis的项目,jsp代码是放在了WEB-INF文件夹下面,通过modelandview返回到jsp。下面是我的spring-mvc的配置文件。 text/html;charset=UTF-8 application/json;charset...

帅的不像实力派
2016/11/03
1K
4

没有更多内容

加载失败,请刷新页面

加载更多

nginx学习之模块

1、 stub_status模块: 用于展示nginx处理连接时的状态。 配置语法如下: Syntax:stub_status;Default:默认没有配置Context:server、location 可以编辑default.conf,加上如下配置: ...

码农实战
49分钟前
4
0
MySQL,必须掌握的6个知识点

目录 一、索引B+ Tree 原理 MySQL 索引 索引优化 索引的优点 索引的使用条件 二、查询性能优化使用 Explain 进行分析 优化数据访问 重构查询方式 三、存储引擎InnoDB MyISAM 比较 四、数据类...

李红欧巴
53分钟前
4
0
堆”和“栈

C++作为一款C语言的升级版本,具有非常强大的功能。它不但能够支持各种程序设计风格,而且还具有C语言的所有功能。我们在这里为大家介绍的是其中一个比较重要的内容,C++内存区域的基本介绍。...

SibylY
今天
4
0
总结:Https

一、介绍 简单理解,https即在http协议的基础上,增加了SSL协议,保障数据传输的安全性。 它由以前的http—–>tcp,改为http——>SSL—–>tcp;https采用了共享密钥加密+公开密钥加密的方式 ...

浮躁的码农
今天
6
0
数据库表与表之间的一对一、一对多、多对多关系

表1 foreign key 表2 多对一:表 1 的多条记录对应表 2 的一条记录 利用foreign key的原理我们可以制作两张表的多对多,一对一关系 多对多: 表1的多条记录可以对应表2的一条记录 表2的多条记...

Garphy
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部