分页查询:
// 1.初始化数据
List<UserBean> list = new ArrayList<>();
for (int i = 0; i <= 100; i++) {
list.add(new UserBean(i, "木婉清" + i, 10 + i));
}
// 2.初始化已知条件
//int currentPage = 8; // 当前页面
int pageSize = 10; // 每页显示的数据
// 从客户端获取当前页面currentPage的值
int currentPage = parseInt(request.getParameter("currentPage"), 1);
// 3.计算
int startIndex = (currentPage - 1) * pageSize; // 开始下标
int endIndex = currentPage * pageSize; // 结束下标
int totalCount = list.size(); // 总记录数
//解决最后一页数据显示不全,填不满最后一页,出现数组越界问题
endIndex = endIndex>totalCount?totalCount:endIndex;
int pageCount = (totalCount-1)/pageSize+1;
// 4.截取分页后的数据
List<UserBean> result = list.subList(startIndex, endIndex);
// 5.将截取的数据保存到作用域中
request.setAttribute("list", result);
request.setAttribute("pageCount", pageCount);
request.setAttribute("currentPage", currentPage);
// 6.跳转页面
request.getRequestDispatcher("/fenye.jsp").forward(request, response);
<!-- 分页栏目的功能 -->
<script>
/* 首页 */
function firstPage(){
location.href = "FenYeServlet?currentPage=1";
}
/* 上一页 */
function backPage(){
location.href = "FenYeServlet?currentPage=${currentPage eq 1?1:currentPage-1 }";
}
/* 下一页 */
function nextPage(){
location.href = "FenYeServlet?currentPage=${currentPage eq pageCount?pageCount:currentPage+1 }";
}
/* 尾页 */
function lastPage(){
location.href = "FenYeServlet?currentPage=${pageCount }";
}
</script>