Servlet+JSP+MyBatis 分页插件实现首页、下一页、上一页、尾页效果
首先,需要导入mybatis和分页插件的依赖包。例如,使用Maven的话,可以在pom.xml文件中添加以下依赖:\n\nxml\n<dependency>\n <groupId>org.mybatis</groupId>\n <artifactId>mybatis</artifactId>\n <version>3.5.6</version>\n</dependency>\n<dependency>\n <groupId>com.github.pagehelper</groupId>\n <artifactId>pagehelper</artifactId>\n <version>1.3.1</version>\n</dependency>\n\n\n接下来,我们需要创建一个包含分页信息的Java对象,用于传递给MyBatis查询方法。例如,创建一个名为"PageInfo"的类:\n\njava\npublic class PageInfo {\n private int pageNum; // 当前页码\n private int pageSize; // 每页显示的记录数\n private int total; // 总记录数\n\n // 省略getter和setter方法\n}\n\n\n然后,我们需要在查询方法中使用分页插件进行分页查询。例如,创建一个名为"UserMapper"的接口,并添加一个查询用户列表的方法:\n\njava\npublic interface UserMapper {\n List<User> getUsers(PageInfo pageInfo);\n}\n\n\n在MyBatis的映射文件中,使用分页插件提供的标签进行分页查询。例如,创建一个名为"UserMapper.xml"的映射文件:\n\nxml\n<mapper namespace="com.example.mapper.UserMapper">\n\n <select id="getUsers" parameterType="com.example.model.PageInfo" resultType="com.example.model.User">\n SELECT * FROM users\n LIMIT #{pageNum}, #{pageSize}\n </select>\n\n</mapper>\n\n\n接下来,在Servlet中处理分页请求。例如,创建一个名为"UserServlet"的Servlet类:\n\njava\n@WebServlet("/users")\npublic class UserServlet extends HttpServlet {\n private UserMapper userMapper;\n\n @Override\n public void init() throws ServletException {\n // 初始化UserMapper\n userMapper = MybatisUtils.getSqlSession().getMapper(UserMapper.class);\n }\n\n @Override\n protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {\n int pageNum = Integer.parseInt(req.getParameter("pageNum")); // 获取当前页码\n int pageSize = 10; // 每页显示10条记录\n\n PageInfo pageInfo = new PageInfo();\n pageInfo.setPageNum(pageNum);\n pageInfo.setPageSize(pageSize);\n\n List<User> userList = userMapper.getUsers(pageInfo); // 查询用户列表\n\n req.setAttribute("userList", userList);\n req.getRequestDispatcher("/user.jsp").forward(req, resp);\n }\n\n @Override\n public void destroy() {\n // 关闭SqlSession\n MybatisUtils.closeSqlSession();\n }\n}\n\n\n最后,创建一个名为"user.jsp"的JSP页面来显示用户列表和分页链接:\n\nhtml\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<!DOCTYPE html>\n<html>\n<head>\n <title>User List</title>\n</head>\n<body>\n <table>\n <thead>\n <tr>\n <th>ID</th>\n <th>Name</th>\n <!-- 其他用户信息列 -->\n </tr>\n </thead>\n <tbody>\n <c:forEach items="${userList}" var="user">\n <tr>\n <td>${user.id}</td>\n <td>${user.name}</td>\n <!-- 其他用户信息列 -->\n </tr>\n </c:forEach>\n </tbody>\n </table>\n\n <div>\n <c:choose>\n <c:when test="${pageNum > 1}">\n <a href="/users?pageNum=${pageNum - 1}">上一页</a>\n </c:when>\n <c:otherwise>\n <span>上一页</span>\n </c:otherwise>\n </c:choose>\n\n <c:choose>\n <c:when test="${pageNum < totalPage}">\n <a href="/users?pageNum=${pageNum + 1}">下一页</a>\n </c:when>\n <c:otherwise>\n <span>下一页</span>\n </c:otherwise>\n </c:choose>\n\n <span>第${pageNum}页,共${totalPage}页</span>\n\n <a href="/users?pageNum=${totalPage}">尾页</a>\n </div>\n</body>\n</html>\n\n\n在以上代码中,使用JSTL的<c:forEach>标签遍历用户列表,并在<c:choose>标签中判断是否显示上一页、下一页和尾页的链接。\n\n以上就是使用servlet+jsp+mybatis的分页插件实现首页、下一页、上一页、尾页效果的简单示例。注意,示例中的代码仅供参考,具体实现可能需要根据实际需求进行调整。
原文地址: https://www.cveoy.top/t/topic/p6Jy 著作权归作者所有。请勿转载和采集!