分页功能

本文介绍了一种基于JSP的分页技术实现方法,通过Page类管理页面数据,结合userBookList.do处理请求,利用Hibernate进行数据查询。文章详细展示了Page类属性、设置方法及分页逻辑,并提供了具体的控制器与DAO层实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JSP中代码

<a href="userBookList.do?pageS=1">首页</a>&nbsp;&nbsp;&nbsp;
                        <c:if test="${page.dpage!=1}">
                        <a href="userBookList.do?pageS=${page.dpage-1}">上一页</a>&nbsp;&nbsp;&nbsp;
                        </c:if>
                        <c:if test="${page.dpage!=page.totalpage}">
                        <a href="userBookList.do?pageS=${page.dpage+1}">下一页</a>&nbsp;&nbsp;&nbsp;
                        </c:if>
                        <a href="userBookList.do?pageS=${page.totalpage}">尾页</a>

Page.java里的代码

package com.bean;


public class Page {
    private Long totalcount;//总条数
    private Integer pagecount=4;//每页显示的条数
    private Long totalpage;//总页数
    private Integer dpage;//当前显示的页码
    public Long getTotalcount() {
        return totalcount;
    }
    public void setTotalcount(Long totalcount) {
        this.totalcount = totalcount;
    }
    public Integer getPagecount() {
        return pagecount;
    }
    public void setPagecount(Integer pagecount) {
        this.pagecount = pagecount;
    }
    public Long getTotalpage() {
        return totalpage;
    }
    public void setTotalpage() {
        if(totalcount%pagecount == 0)
            this.totalpage = totalcount/pagecount;
        else {
            this.totalpage = totalcount/pagecount+1;
        }
    }
    public Integer getDpage() {
        return dpage;
    }
    public void setDpage(Integer dpage) {
        this.dpage = dpage;
    }



}

userBookList.do方法

@RequestMapping("/userBookList")
public String booklist2(Model model,Integer pageS) {
    Long totalCount = adminService.getCount();
    System.out.println(totalCount);
    Paging paging = new Paging();
    Page page = paging.checkByPage(totalCount, pageS);

    List<Book> list=adminService.showBook(page);

    model.addAttribute("page",page);
    model.addAttribute("booklist", list);
    return "shop";
}

paging里的代码

package com.paging;

import com.bean.Page;

public class Paging {
        public Page checkByPage(Long totalCount,Integer pageS) {
            Integer dpage = 1;
            if (pageS != null) {
                dpage = pageS;
            }
            Page page = new Page();
            page.setTotalcount(totalCount);
            page.setTotalpage();
            page.setDpage(dpage);
            return page;
        }
}

adminService.showBook方法(在dao方法里面改名为selectAllBook了)

@Override
    public List<Book> selectAllBook(Page page) {
        Session session = hibernateUtil.openSession();
        Transaction tran = session.beginTransaction();

        Query query = session.createQuery("from Book");

        query.setFirstResult((page.getDpage()-1) * page.getPagecount());
        query.setMaxResults(page.getPagecount());
        List<Book> booklist = query.list();

        tran.commit();
        session.close();

        return booklist;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值