首先,需要引入mybatis的分页插件,例如使用PageHelper插件。

  1. 在pom.xml文件中添加PageHelper依赖:
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>最新版本号</version>
</dependency>
  1. 在web.xml中配置DispatcherServlet的映射:
<servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 配置Spring MVC配置文件的位置 -->
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:springmvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
  1. 创建一个Controller类,处理分页请求:
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;

@Controller
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping("/user/list")
    public String userList(Model model, Integer pageNum, Integer pageSize) {
        // 设置分页参数
        pageNum = pageNum == null ? 1 : pageNum;
        pageSize = pageSize == null ? 10 : pageSize;
        PageHelper.startPage(pageNum, pageSize);

        // 查询用户列表
        List<User> userList = userService.getAllUsers();

        // 封装查询结果
        PageInfo<User> pageInfo = new PageInfo<>(userList);

        // 将结果放入Model中
        model.addAttribute("userList", userList);
        model.addAttribute("pageInfo", pageInfo);

        return "userList";
    }
}
  1. 在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>
    <meta charset="UTF-8">
    <title>User List</title>
</head>
<body>
    <h1>User List</h1>

    <table>
        <tr>
            <th>ID</th>
            <th>Name</th>
            <th>Email</th>
        </tr>
        <c:forEach var="user" items="${userList}">
            <tr>
                <td>${user.id}</td>
                <td>${user.name}</td>
                <td>${user.email}</td>
            </tr>
        </c:forEach>
    </table>

    <div>
        <c:choose>
            <c:when test="${pageInfo.hasPreviousPage}">
                <a href="${pageContext.request.contextPath}/user/list?pageNum=${pageInfo.prePage}&pageSize=${pageInfo.pageSize}">上一页</a>
            </c:when>
            <c:otherwise>
                上一页
            </c:otherwise>
        </c:choose>

        <c:choose>
            <c:when test="${pageInfo.hasNextPage}">
                <a href="${pageContext.request.contextPath}/user/list?pageNum=${pageInfo.nextPage}&pageSize=${pageInfo.pageSize}">下一页</a>
            </c:when>
            <c:otherwise>
                下一页
            </c:otherwise>
        </c:choose>

        <a href="${pageContext.request.contextPath}/user/list?pageNum=${pageInfo.pages}&pageSize=${pageInfo.pageSize}">尾页</a>
    </div>
</body>
</html>

注意:以上代码仅为示例,具体的实现方式可能因项目结构和需求的不同而有所差异

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

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

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