Servlet + JSP + MyBatis 分页插件实现首页、上一页、下一页、尾页功能
以下是一个使用 Servlet、JSP 和 MyBatis 分页插件实现首页、上一页、下一页和尾页功能的示例代码:\n\n在 Servlet 中:\n\njava\nimport javax.servlet.ServletException;\nimport javax.servlet.annotation.WebServlet;\nimport javax.servlet.http.HttpServlet;\nimport javax.servlet.http.HttpServletRequest;\nimport javax.servlet.http.HttpServletResponse;\nimport java.io.IOException;\nimport java.util.List;\n\n@WebServlet("/userList")\npublic class UserListServlet extends HttpServlet {\n private UserService userService;\n\n @Override\n public void init() throws ServletException {\n super.init();\n userService = new UserService();\n }\n\n protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\n int pageNum = Integer.parseInt(request.getParameter("pageNum"));\n int pageSize = 10; // 每页显示 10 条记录\n\n // 使用 MyBatis 分页插件查询用户列表\n List<User> userList = userService.getUserList(pageNum, pageSize);\n request.setAttribute("userList", userList);\n\n // 查询总记录数\n int total = userService.getUserCount();\n request.setAttribute("total", total);\n\n // 计算总页数\n int totalPages = (total + pageSize - 1) / pageSize;\n request.setAttribute("totalPages", totalPages);\n\n // 当前页码\n request.setAttribute("pageNum", pageNum);\n\n request.getRequestDispatcher("userList.jsp").forward(request, response);\n }\n}\n\n\n在 JSP 页面(userList.jsp)中:\n\njsp\n<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>\n<!DOCTYPE html>\n<html>\n<head>\n <meta charset="UTF-8">\n <title>User List</title>\n</head>\n<body>\n <h1>User List</h1>\n <table>\n <tr>\n <th>Username</th>\n <th>Email</th>\n </tr>\n <c:forEach var="user" items="${userList}">\n <tr>\n <td>${user.username}</td>\n <td>${user.email}</td>\n </tr>\n </c:forEach>\n </table>\n <br>\n <div>\n <c:choose>\n <c:when test="${pageNum > 1}">\n <a href="userList?pageNum=1">首页</a>\n <a href="userList?pageNum=${pageNum - 1}">上一页</a>\n </c:when>\n <c:otherwise>\n <span>首页</span>\n <span>上一页</span>\n </c:otherwise>\n </c:choose>\n\n <c:choose>\n <c:when test="${pageNum < totalPages}">\n <a href="userList?pageNum=${pageNum + 1}">下一页</a>\n <a href="userList?pageNum=${totalPages}">尾页</a>\n </c:when>\n <c:otherwise>\n <span>下一页</span>\n <span>尾页</span>\n </c:otherwise>\n </c:choose>\n </div>\n</body>\n</html>\n\n\n在上述示例中,UserListServlet 类负责处理用户列表的请求,并将用户列表、总记录数、总页数、当前页码等信息传递给 userList.jsp 页面进行展示。在 userList.jsp 页面中,使用 JSTL 标签库(<c:forEach>、<c:choose> 和 <c:when>、<c:otherwise>)进行循环遍历和条件判断,根据当前页码和总页数显示首页、上一页、下一页和尾页的链接或文本。
原文地址: https://www.cveoy.top/t/topic/p6FG 著作权归作者所有。请勿转载和采集!