使用servlet+jsp+mybatis的自带的分页插件写出首页 下一页 上一页 尾页的效果
首先,需要在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">«</a></li>
<c:if test="${pageInfo.hasPreviousPage}">
<li><a href="index?pageNum=${pageInfo.pageNum - 1}"><</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}">></a></li>
</c:if>
<li><a href="index?pageNum=${pageInfo.pages}">»</a></li>
</ul>
以上代码实现了在首页中显示记录列表和分页导航,可以通过点击导航链接实现上一页、下一页、首页和尾页的效果
原文地址: http://www.cveoy.top/t/topic/ioU2 著作权归作者所有。请勿转载和采集!