分页 page

分页工具类:

package com.hisoft.util;
import org.springframework.stereotype.Component;

import java.util.List;
@Component
public class PageUtil<T> {

    private Integer pageSize = 10; //每页显示的条数
    private Integer totalSize; //当前总条数
    private Integer pageNo; //当前页
    private Integer start; //起始位置
    private List<T> items; //当前查询的结果集
    private Integer totalPage;//末页

    public PageUtil() {
    }

    public PageUtil(Integer pageSize, Integer totalSize, Integer pageNo) {
        this.pageSize = pageSize;
        setTotalSize(totalSize);
        setPageNo(pageNo);
    }

    public PageUtil(Integer totalSize,Integer pageNo){
        setTotalSize(totalSize);
        setPageNo(pageNo);
    }

    public Integer getPageSize() {
        return pageSize;
    }

    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }

    /**
     * 计算总页数
     * @param totalSize
     */
    public void setTotalSize(Integer totalSize) {
        totalPage = totalSize / pageSize;
        if(totalSize % pageSize != 0){
            totalPage++;
        }
        this.totalSize = totalSize;
    }

    public Integer getTotalPage() {
        return totalPage;
    }

    public Integer getPageNo() {
        return pageNo;
    }

    /**
     * 赋值当前页并计算起始位置
     * @param pageNo
     */
    public void setPageNo(Integer pageNo) {
        if(pageNo <1){
            pageNo = 1;
        }
        if(pageNo > totalPage){
            pageNo = totalPage;
        }
        start = (pageNo - 1)*pageSize;
        this.pageNo = pageNo;
    }

    public Integer getStart() {
        return start;
    }


    public List<T> getItems() {
        return items;
    }

    public void setItems(List<T> items) {
        this.items = items;
    }

}

Dao层:

   /**
     * 分页
     * @param pageNo
     * @param pageSize
     * @return
     */
    public PageUtil<Book> findAll(Integer pageNo,Integer pageSize){
        Integer totalSize = getCount().intValue();
        PageUtil<Book> page = null;
        if(pageSize == null){
            page = new PageUtil<Book>(totalSize,pageNo);
        }
        page = new PageUtil<Book>(pageSize,totalSize,pageNo);
        String sql = "select id,bookname,author,publisher,total,nownum from book limit ?,?";
        List<Book> bookList = jdbcTemplate.query(sql, new BeanRowMapper(), page.getStart(), page.getPageSize());
        page.setItems(bookList);
        return page;
    }


    /**
     * 计算总条数
     */
    public Long getCount(){
        String sql = "select count(*) from book";
//        Long sum = jdbcTemplate.queryForObject(sql,Long.class);
//        return sum;
        Long sum = jdbcTemplate.queryForObject(sql, new RowMapper<Long>() {
            public Long mapRow(ResultSet resultSet, int i) throws SQLException {
                return resultSet.getLong(1);
            }
        });
        return sum;
    }

Controller层:

    //分页
    @RequestMapping("/find/{page}")
    public String findAll(@PathVariable(required = false) Integer page,Model model){
        if(page==null){
            page = 1;
        }
        PageUtil<Book> pageUtil = bookService.findAll(page,10);
        model.addAttribute("pageUtil",pageUtil);
        return "/book/books";
    }

jsp页面:

        <c:forEach items="${pageUtil.items}" var="list">

            <tr>
                <td>${list.id}</td>
                <td>${list.bookName}</td>
                <td>${list.author}</td>
                <td>${list.publisher}</td>
                <td>${list.total}</td>
                <td>${list.nowNum}</td>
                <td>
                    <a href="/book/update/${list.id}">修改</a>
                    <a href="/book/del/${list.id}">删除</a>
                    <a href="">借阅</a>
                </td>
            </tr>

        </c:forEach>


    <nav aria-label="...">
        <ul class="pager">
            <li><a href="/book/find/1">首页</a></li>
            <li><a href="/book/find/${pageUtil.pageNo - 1}">上一页</a></li>
            <c:if test="${pageUtil.pageNo == pageUtil.totalPage}">
                <li><a href="javascript:void(0)" disabled>下一页</a></li>
            </c:if>
            <c:if test="${pageUtil.pageNo < pageUtil.totalPage}">
                <li><a href="/book/find/${pageUtil.pageNo + 1}">下一页</a></li>
            </c:if>
            <li><a href="/book/find/${pageUtil.totalPage}">末页</a></li>
        </ul>
    </nav>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

单眼皮女孩i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值