Servlet+JSP+MyBatis分页插件实现首页、上一页、下一页、尾页功能
{"title":"使用servlet+jsp+mybatis使用分页插件写出首页,上一页,下一页,尾页","description":"本文介绍如何使用Servlet+JSP+MyBatis分页插件实现首页、上一页、下一页和尾页功能,并提供详细代码示例。","keywords":"Servlet, JSP, MyBatis, 分页插件, 分页, 首页, 上一页, 下一页, 尾页, 代码示例","content":"首先,需要在pom.xml文件中添加MyBatis分页插件的依赖:\n\nxml\n<dependency>\n <groupId>com.github.pagehelper</groupId>\n <artifactId>pagehelper</artifactId>\n <version>5.1.11</version>\n</dependency>\n\n\n接下来,创建一个类来处理分页的逻辑:\n\njava\nimport com.github.pagehelper.PageHelper;\nimport com.github.pagehelper.PageInfo;\nimport java.util.List;\n\npublic class PaginationHelper<T> {\n private int currentPage;\n private int pageSize;\n private int totalCount;\n private List<T> data;\n\n public PaginationHelper(int currentPage, int pageSize, int totalCount, List<T> data) {\n this.currentPage = currentPage;\n this.pageSize = pageSize;\n this.totalCount = totalCount;\n this.data = data;\n }\n\n public int getCurrentPage() {\n return currentPage;\n }\n\n public int getPageSize() {\n return pageSize;\n }\n\n public int getTotalCount() {\n return totalCount;\n }\n\n public int getTotalPages() {\n return (int) Math.ceil((double) totalCount / pageSize);\n }\n\n public boolean hasPreviousPage() {\n return currentPage > 1;\n }\n\n public boolean hasNextPage() {\n return currentPage < getTotalPages();\n }\n\n public List<T> getData() {\n return data;\n }\n}\n\n\n然后,在Servlet中调用MyBatis分页插件查询数据:\n\njava\nimport com.github.pagehelper.PageHelper;\nimport com.github.pagehelper.PageInfo;\nimport org.apache.ibatis.session.SqlSession;\nimport javax.servlet.ServletException;\nimport javax.servlet.http.HttpServlet;\nimport javax.servlet.http.HttpServletRequest;\nimport javax.servlet.http.HttpServletResponse;\nimport java.io.IOException;\nimport java.util.List;\n\npublic class MyServlet extends HttpServlet {\n protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\n int currentPage = Integer.parseInt(request.getParameter("currentPage"));\n int pageSize = Integer.parseInt(request.getParameter("pageSize"));\n\n // 使用PageHelper进行分页设置\n PageHelper.startPage(currentPage, pageSize);\n\n // 调用MyBatis查询数据\n SqlSession sqlSession = MyBatisUtil.getSqlSessionFactory().openSession();\n List<Data> dataList = sqlSession.selectList("com.example.mapper.DataMapper.selectData");\n\n // 使用PageInfo获取分页信息\n PageInfo<Data> pageInfo = new PageInfo<>(dataList);\n int totalCount = (int) pageInfo.getTotal();\n\n // 封装分页数据\n PaginationHelper<Data> paginationHelper = new PaginationHelper<>(currentPage, pageSize, totalCount, dataList);\n\n // 将分页数据存入request中\n request.setAttribute("paginationHelper", paginationHelper);\n request.getRequestDispatcher("index.jsp").forward(request, response);\n }\n}\n\n\n最后,在index.jsp中显示分页数据:\n\njsp\n<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>\n<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>\n<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>\n<!DOCTYPE html>\n<html>\n<head>\n <title>分页示例</title>\n</head>\n<body>\n <table>\n <thead>\n <tr>\n <th>ID</th>\n <th>Name</th>\n </tr>\n </thead>\n <tbody>\n <c:forEach items="${paginationHelper.data}" var="data">\n <tr>\n <td>${data.id}</td>\n <td>${data.name}</td>\n </tr>\n </c:forEach>\n </tbody>\n </table>\n\n <div>\n <a href="${request.contextPath}/?currentPage=1&pageSize=${paginationHelper.pageSize}">首页</a>\n <c:if test="${paginationHelper.hasPreviousPage}">\n <a href="${request.contextPath}/?currentPage=${paginationHelper.currentPage - 1}&pageSize=${paginationHelper.pageSize}">上一页</a>\n </c:if>\n <c:if test="${paginationHelper.hasNextPage}">\n <a href="${request.contextPath}/?currentPage=${paginationHelper.currentPage + 1}&pageSize=${paginationHelper.pageSize}">下一页</a>\n </c:if>\n <a href="${request.contextPath}/?currentPage=${paginationHelper.totalPages}&pageSize=${paginationHelper.pageSize}">尾页</a>\n </div>\n</body>\n</html>\n\n\n以上代码示例实现了使用Servlet+JSP+MyBatis分页插件来实现首页、上一页、下一页和尾页的功能。在Servlet中调用MyBatis分页插件进行分页查询,然后将分页数据封装到PaginationHelper中,最后在index.jsp中显示分页数据和分页链接。
原文地址: https://www.cveoy.top/t/topic/p6Fz 著作权归作者所有。请勿转载和采集!