使用servlet+jsp+mybatis的分页插件写出首页 下一页 上一页 尾页的效果
首先,需要导入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的分页插件实现首页、下一页、上一页、尾页效果的简单示例。注意,示例中的代码仅供参考,具体实现可能需要根据实际需求进行调整
原文地址: https://www.cveoy.top/t/topic/ioT7 著作权归作者所有。请勿转载和采集!