用bootstrap做分页

若如初见. 提交于 2020-01-15 00:57:20

分页

应用于页面数据特别多的情况

作用:

  1. 加快数据查询速度
  2. 方便用户操作
  3. 利于页面的布局

    思路:

  4. 确定表中总的数据行数
  5. 计算页面数量:页数 = 总行数 / 每页行数
  6. 编写分页查询的方法
    select * from 表名 limit 开始行数,长度
  7. 包装数据到Java对象中,发送给JSP

    包装分页数据的实体类:

public class Page<T> {
    //每页的行数
    public static final int PAGE_SIZE = 10;
    //保存分页的数据
    private List<T> data;
    //保存页面数量
    private int pageCount;
    //保存当前页数
    private int currentPage;
....
}

确定表中总的数据行数

select count(*) from 表

在JdbcUtils中添加查询行数的方法

这个方法有点复杂其实,dbtuils中有个专门做聚合函数查询的函数是很好用的
/**
* 查询行数
*/
public static int queryCount(String sql,Object... params){
try {
return runner.query(sql, new ResultSetHandler(){
@Override
public Integer handle(ResultSet rs) throws SQLException {
//将数据库游标指向第一行
rs.next();
//返回唯一的一列数据(行数)
return rs.getInt(1);
}
}, params);
} catch (SQLException e) {
e.printStackTrace();
}
return 0;
}

DAO层编写并实现:

int selectUserCount();
List<User> selectUsersLimit(int start,int length);

Service层定义并实现:

@Override
public Page<User> selectUsersPage(int currentPage) {
    //查询总行数
    //计算出总的页数
    //通过当前页数执行分页查询
    //把总页数,当前页数,数据集合包装到Page对象中
    //返回Page对象
    return null;
}

在UserServlet添加方法:selectUsersPage

  1. 获得当前页数参数
  2. 如果页数为空就赋值默认为1
  3. 调用Service执行分页查询
  4. 保存数据,并跳转到users.jsp

登录Servlet跳转分页查询的方法

修改users.jsp ${users} ---> ${page.data}

实现分页超链接:

  1. 按page.pageCount进行固定次数循环,绘制超链接
    <a href="user.do?m=selectUsersPage&pageNo=${i}">${i}</a>
  2. 实现上一页和下一页

    Bootstrap

    就是进入官网,看着官网的例子自己进行套用即可

  • 如何利用把后台的数据拿到页面去灵活的显示在下拉列表框,根据后台的变动而变动。可以把option外面套一个EL表达式的forEach循环。
  • 有的是死的可以不用从后台请求。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!