IDEA入门搭建ssm,实现分页功能和拦截器

项目原理

今天学习内容是ssm项目实现分页功能和拦截器。

1.分页功能的实现思路是通过sql语句limit来确定页面的开始数以及数量多少;

<select id="findAll" resultType="user">
        select * from tb_user
        <if test="username!=null and username !=''">
           where username like concat("%",#{username},"%")
        </if>
        limit #{start},#{size}
    </select>

2.bean层新建pageInfo类来保存分页信息;

package com.zr.bean;

import java.util.List;

public class PageInfo<T> {
    private List<T> list;
    private int totalCount;
    private int size;
    private int totalPage;
    private int currentPage;

    public List<T> getList() {
        return list;
    }

    public void setList(List<T> list) {
        this.list = list;
    }

    public int getTotalCount() {
        return totalCount;
    }

    public void setTotalCount(int totalCount) {
        this.totalCount = totalCount;
    }

    public int getSize() {
        return size;
    }

    public void setSize(int size) {
        this.size = size;
    }

    public int getTotalPage() {
        return totalPage;
    }

    public void setTotalPage(int totalPage) {
        this.totalPage = totalPage;
    }

    public int getCurrentPage() {
        return currentPage;
    }

    public void setCurrentPage(int currentPage) {
        this.currentPage = currentPage;
    }

    @Override
    public String toString() {
        return "PageInfo{" +
                "list=" + list +
                ", totalCount=" + totalCount +
                ", size=" + size +
                ", totalPage=" + totalPage +
                ", currentPage=" + currentPage +
                '}';
    }
}

3.在UserSerImpl中修改findAll()方法 

 @Override
    public PageInfo<User> findAll(int currentPage,String username) {
        PageInfo pageInfo=new PageInfo();


        int totalCount=userDao.getTotalCount(username);
        pageInfo.setTotalCount(totalCount);
        double d=totalCount/5.0;
        int tp= (int) Math.ceil(d);
        pageInfo.setTotalPage(tp);
        pageInfo.setSize(5);
        if(currentPage<1){
            pageInfo.setCurrentPage(1);
        }else if(currentPage>tp){
            pageInfo.setCurrentPage(tp);
        }else {
            pageInfo.setCurrentPage(currentPage);
        }
        int start=(pageInfo.getCurrentPage()-1)*5;
        List<User> userList = userDao.findAll(start, 5,username);
        pageInfo.setList(userList);
        return pageInfo;
    }

4.修改前端代码 user_list.jsp

<tbody							  
 <c:forEach items="${pageInfo.list}" var="user">
										
<tr>
										
	<td><
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值