首先,需要导入mybatis和分页插件的依赖包。例如,使用Maven的话,可以在pom.xml文件中添加以下依赖:

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.6</version>
</dependency>
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>1.3.1</version>
</dependency>

接下来,我们需要创建一个包含分页信息的Java对象,用于传递给MyBatis查询方法。例如,创建一个名为"PageInfo"的类:

public class PageInfo {
    private int pageNum; // 当前页码
    private int pageSize; // 每页显示的记录数
    private int total; // 总记录数

    // 省略getter和setter方法
}

然后,我们需要在查询方法中使用分页插件进行分页查询。例如,创建一个名为"UserMapper"的接口,并添加一个查询用户列表的方法:

public interface UserMapper {
    List<User> getUsers(PageInfo pageInfo);
}

在MyBatis的映射文件中,使用分页插件提供的标签进行分页查询。例如,创建一个名为"UserMapper.xml"的映射文件:

<mapper namespace="com.example.mapper.UserMapper">

    <select id="getUsers" parameterType="com.example.model.PageInfo" resultType="com.example.model.User">
        SELECT * FROM users
        LIMIT #{pageNum}, #{pageSize}
    </select>

</mapper>

接下来,在Servlet中处理分页请求。例如,创建一个名为"UserServlet"的Servlet类:

@WebServlet("/users")
public class UserServlet extends HttpServlet {
    private UserMapper userMapper;

    @Override
    public void init() throws ServletException {
        // 初始化UserMapper
        userMapper = MybatisUtils.getSqlSession().getMapper(UserMapper.class);
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        int pageNum = Integer.parseInt(req.getParameter("pageNum")); // 获取当前页码
        int pageSize = 10; // 每页显示10条记录

        PageInfo pageInfo = new PageInfo();
        pageInfo.setPageNum(pageNum);
        pageInfo.setPageSize(pageSize);

        List<User> userList = userMapper.getUsers(pageInfo); // 查询用户列表

        req.setAttribute("userList", userList);
        req.getRequestDispatcher("/user.jsp").forward(req, resp);
    }

    @Override
    public void destroy() {
        // 关闭SqlSession
        MybatisUtils.closeSqlSession();
    }
}

最后,创建一个名为"user.jsp"的JSP页面来显示用户列表和分页链接:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
    <title>User List</title>
</head>
<body>
    <table>
        <thead>
            <tr>
                <th>ID</th>
                <th>Name</th>
                <!-- 其他用户信息列 -->
            </tr>
        </thead>
        <tbody>
            <c:forEach items="${userList}" var="user">
                <tr>
                    <td>${user.id}</td>
                    <td>${user.name}</td>
                    <!-- 其他用户信息列 -->
                </tr>
            </c:forEach>
        </tbody>
    </table>

    <div>
        <c:choose>
            <c:when test="${pageNum > 1}">
                <a href="/users?pageNum=${pageNum - 1}">上一页</a>
            </c:when>
            <c:otherwise>
                <span>上一页</span>
            </c:otherwise>
        </c:choose>

        <c:choose>
            <c:when test="${pageNum < totalPage}">
                <a href="/users?pageNum=${pageNum + 1}">下一页</a>
            </c:when>
            <c:otherwise>
                <span>下一页</span>
            </c:otherwise>
        </c:choose>

        <span>第${pageNum}页,共${totalPage}页</span>

        <a href="/users?pageNum=${totalPage}">尾页</a>
    </div>
</body>
</html>

在以上代码中,使用JSTL的<c:forEach>标签遍历用户列表,并在<c:choose>标签中判断是否显示上一页、下一页和尾页的链接。

以上就是使用servlet+jsp+mybatis的分页插件实现首页、下一页、上一页、尾页效果的简单示例。注意,示例中的代码仅供参考,具体实现可能需要根据实际需求进行调整

使用servlet+jsp+mybatis的分页插件写出首页 下一页 上一页 尾页的效果

原文地址: https://www.cveoy.top/t/topic/ioT7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录