首先,需要在pom.xml文件中添加MyBatis分页插件的依赖:

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>版本号</version>
</dependency>

然后,在MyBatis的配置文件中配置分页插件:

<plugins>
    <plugin interceptor="com.github.pagehelper.PageInterceptor">
        <property name="helperDialect" value="数据库方言"/>
        <property name="reasonable" value="true"/>
    </plugin>
</plugins>

接下来,创建一个Servlet处理请求并将分页查询的结果传递给JSP页面:

@WebServlet("/index")
public class IndexServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        int pageNum = Integer.parseInt(request.getParameter("pageNum")); // 当前页码
        int pageSize = 10; // 每页显示的记录数

        // 调用MyBatis的分页查询方法,获取分页结果
        PageHelper.startPage(pageNum, pageSize);
        List<User> userList = userDao.getAllUsers(); // 自己定义的查询方法

        PageInfo<User> pageInfo = new PageInfo<>(userList);

        request.setAttribute("pageInfo", pageInfo);
        request.getRequestDispatcher("index.jsp").forward(request, response);
    }
}

在JSP页面中,使用JSTL标签库来展示分页信息和链接:

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<!-- 显示记录列表 -->
<c:forEach var="user" items="${pageInfo.list}">
    <tr>
        <td>${user.id}</td>
        <td>${user.name}</td>
        <td>${user.age}</td>
    </tr>
</c:forEach>

<!-- 显示分页导航 -->
<ul class="pagination">
    <li><a href="index?pageNum=1">&laquo;</a></li>
    <c:if test="${pageInfo.hasPreviousPage}">
        <li><a href="index?pageNum=${pageInfo.pageNum - 1}">&lt;</a></li>
    </c:if>
    <c:forEach var="pageNum" begin="${pageInfo.pageNum - 2}" end="${pageInfo.pageNum + 2}" step="1">
        <c:if test="${pageNum >= 1 && pageNum <= pageInfo.pages}">
            <c:choose>
                <c:when test="${pageNum eq pageInfo.pageNum}">
                    <li class="active"><a href="#">${pageNum}</a></li>
                </c:when>
                <c:otherwise>
                    <li><a href="index?pageNum=${pageNum}">${pageNum}</a></li>
                </c:otherwise>
            </c:choose>
        </c:if>
    </c:forEach>
    <c:if test="${pageInfo.hasNextPage}">
        <li><a href="index?pageNum=${pageInfo.pageNum + 1}">&gt;</a></li>
    </c:if>
    <li><a href="index?pageNum=${pageInfo.pages}">&raquo;</a></li>
</ul>

以上代码实现了在首页中显示记录列表和分页导航,可以通过点击导航链接实现上一页、下一页、首页和尾页的效果

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

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

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