springMVC手写分页查询

package com.neuedu.java7.baen;

public class Page {

    private int currentPage = 1;    //当前页数
    private int totalPages;        //总页数
    private int total;            //记录总行数
    private int pageSize = 5;    //每页记录行数
    private int nextPage;        //下一页
    private int prefPage;        //前一页

    public Page(){
    }

    public Page(int currentPage, int pageSize) {
        this.currentPage = currentPage;
        this.pageSize = pageSize;
    }

    public int getCurrentPage() {
        return currentPage;
    }
    public void setCurrentPage(int currentPage) {
        this.currentPage = currentPage;
    }
    public int getTotalPages() {
        totalPages = total%pageSize == 0?total/pageSize:total/pageSize+1;
        return totalPages;
    }
    public int getTotal() {
        return total;
    }
    public void setTotal(int total) {
        this.total = total;
    }
    public int getPageSize() {
        return pageSize;
    }
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
    public int getNextPage() {
        if(currentPage<totalPages){
            nextPage = currentPage+1;
        }else{
            nextPage = currentPage;
        }
        return nextPage;
    }
    public int getPrefPage() {
        if(currentPage>1){
            prefPage = currentPage-1;
        }else{
            prefPage = currentPage;
        }
        return prefPage;
    }    

}

//写方法
    /**
     * 分页查询
     *
     * @param pagger
     * @return
     */
    public List<Category> findList(Page page);

    /**
     * 查询记录总数
     *
     * @return
     */
    public int findTotal();

//写Mapper方法
    <select id="findTotal" resultType="int">
        select count(t.id) t from
        category t
    </select>

    <select id="findList" parameterType="com.neuedu.java7.baen.Page"
        resultMap="CategoryMap">
        select * from (select rownum rn, id,cname from category
        where rownum &lt;= #{currentPage}*#{pageSize}) where rn &gt;(#{currentPage}-1)*#{pageSize}
    </select>

//写Action控制
@RequestMapping("/doAll")
    public String findAlls(HttpServletRequest request) {    

        Page page  = new Page();
        int count = categoryService.findTotal();
         page.setTotal(count);

         request.getSession().setAttribute("page", page);
        List<Category> category = categoryService.findList(page);
        request.getSession().setAttribute("category", category);
        return "list";
    }

    @RequestMapping("/page")
    public String page(Integer pageSize,Integer currentPage,HttpServletRequest request){
        Page page = null;
        if (request.getSession().getAttribute("page") !=null) {
            page = (Page) request.getSession().getAttribute("page");
        }else {
            page = new Page();
        }
        if (pageSize!=null) {
            page.setPageSize(pageSize);
        }
        if (currentPage!=null) {
            page.setCurrentPage(currentPage);
        }
        List<Category> category = categoryService.findList(page);
        request.setAttribute("category", category);

        return "list";
    }

//写页面编码
<tr>
    <td align="left" colspan="2">每页显示<select name="pageSize" id="pageSize" style="background-color: #FFFF33" onchange="toPage()">
                <option value="5" ${page.pageSize==5?"selected=‘selected‘":"" }>5</option>
                <option value="10" ${page.pageSize==10?"selected=‘selected‘":"" }>10</option>
                <option value="20" ${page.pageSize==20?"selected=‘selected‘":"" }>20</option>
            </select>条</td>

    <td align="right" colspan="3"><a href="../category/page.do?currentPage=1">[首页]</a>
    <a href="../category/page.do?currentPage=${page.prefPage }">前一页</a>
    <a href="../category/page.do?currentPage=${page.nextPage }">后一页</a>
    <a href="../category/page.do?currentPage=${page.totalPages }">[尾页]</a></td>
    </td>
    </tr>
时间: 2024-10-08 09:04:34

springMVC手写分页查询的相关文章

手写分页

<tr> <td> <input type="button" value="|<" onclick="first()" /> <input type="button" value="<<" onclick="prev()" /> <input type="text" value="1&q

Ajax写分页查询(实现不刷新页面)

要求: 获取数据库中大量的信息显示在页面上,必然要使用到分页查询: 若不使用Ajax,而是用其他的方法,肯定是要刷新页面的,用户体检很不好, 所以最好使用Ajax的方法写分页查询: 1.先来找一张数据很多的表吧! 一张简单的表 代码,引入jquery包: <script src="jquery-1.11.2.min.js"></script> 写一张表格,显示我们的代号跟名称: <table class="table table-striped&

如何用ajax写分页查询(以留言信息为例)-----2017-05-17

要写分页,首先你得清楚,一页你想显示多少条信息?如何计算总共显示的页数? 先说一下思路: (1)从数据库读取数据,以chenai表为例,读取所有留言信息.并能够实现输入发送者,可以查询该发送者的留言总数. (2)计算分页信息,此处,以每页显示5条信息为例.分页列表(如图)以当前页为中心,向前显示2条,向后显示2条. (3)给每个分页列表添加对应的点击事件. (4)能够实现分页后,添加查询分页功能. 现实效果图: 第一步:引入 jquery文件和bootstrap文件.(因为表格和分页均是用的bo

Mybatis + SpringMVC + Maven实现分页查询

使用Mybatis + Maven + SpringMVC 运行时,突然被需要分页查询的功能给难住了 这里推荐采用的插件是PageHelper这个插件,使用起来十分方便.该插件支持以下数据库: Oracle Mysql MariaDB SQLite Hsqldb PostgreSQL DB2 SqlServer(2005+) Informix H2 对应于github的项目地址: https://github.com/pagehelper/Mybatis-PageHelper 关于使用建议猿友们

纯手写分页控件CSS+JS+SQL

Asp.net中虽然用DataPager配合ListView可以实现分页显示,但是有时候由于开发环境等问题不能用到DataPager控件,那么自己手工写一个分页控件就很有必要了,当然,最重要的是通用性. 首先,来看一下我的分页控件的显示效果: 简单说明:红底色的为当前页,白底红字的是选择新的页,共有1236页,默认从第1页开始显示,分页行长度含“……”共11格,有全显示,单边省略和两边省略三种模式. 当你仔细看完上图的显示效果并理解其分页的相应变化后,我们就要开始制作这个分页了:) 第一步)获取

Oracle ROWNUM用法和分页查询总结

********************************************************************************************************** [转载] Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用. Oracle分页查询格式(一):http://yangtingkun.itpub.net/post/468/100278 Oracle分页查询格式(二):http://yangtingkun.itpub.ne

Mybatis+SpringMVC实现分页查询(附源码)

Maven+Mybatis+Spring+SpringMVC实现分页查询(附源码) 一.项目搭建 关于项目搭建,小宝鸽以前写过一篇Spirng+SpringMVC+Maven+Mybatis+MySQL项目搭建,这篇文章提供了详细的搭建过程,而且提供了源码下载,接下来的将在这个源码的基础上继续开发.所以建议各位猿友可以把猿友下载一下. 二.分页插件的介绍 博主采用的插件是PageHelper这个插件,使用起来十分方便.该插件支持以下数据库: Oracle Mysql MariaDB SQLite

自己写的一个分页查询前台页码控制

<!doctype html> <%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=utf-8"%> <%@ include file="/pages/common/taglibs.jsp"%> <html> <head> <meta http-equiv=Co

springmvc 分页查询的简单实现

目前较常用的分页实现办法有两种: 1.每次翻页都修改SQL,向SQL传入相关参数去数据库实时查出该页的数据并显示. 2.查出数据库某张表的全部数据,再通过在业务逻辑里面进行处理去取得某些数据并显示. 对于数据量并不大的简单的管理系统而言,第一种实现方法相对来说容易使用较少的代码实现分页这一功能,本文也正是为大家介绍这种方法: 代码片段: 1,Page.java package com.cm.contract.common; import org.apache.commons.lang.Strin