jsp不使用框架实现分页(首页、下一页、上一页、末页)

时间: 2023-05-30 14:07:11 浏览: 3324
1. 首先需要获取到总数据量和每页显示的数据量。 2. 根据总数据量和每页显示的数据量,计算出需要分成多少页,并将页数存储在变量中。 3. 定义一个变量表示当前页码,并将其初始化为1。 4. 根据当前页码和每页显示的数据量,从数据库中查询出对应的数据。 5. 在页面上显示查询结果,并显示分页导航栏。 6. 分页导航栏应该包括首页、下一页、上一页和末页四个按钮,并且要根据当前页码和总页数来判断是否可用。 7. 点击首页按钮时,将当前页码设置为1,重新查询数据并刷新页面。 8. 点击下一页按钮时,将当前页码加1,重新查询数据并刷新页面。 9. 点击上一页按钮时,将当前页码减1,重新查询数据并刷新页面。 10. 点击末页按钮时,将当前页码设置为总页数,重新查询数据并刷新页面。 11. 在查询数据时,要根据当前页码和每页显示的数据量来计算出需要查询的数据的起始位置和结束位置。 12. 在分页导航栏中,可以使用超链接或按钮来实现跳转和刷新操作。
相关问题

jsp不使用框架实现分页(首页、下一页、上一页、末页)代码

以下是一个基本的JSP实现分页的示例,没有使用任何框架: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.*" %> <%@ page import="java.io.*" %> <% // 设置页码和每页显示的记录数 int pageSize = 10; int pageNum = 1; String pageNumString = request.getParameter("pageNum"); if (pageNumString != null && !pageNumString.equals("")) { pageNum = Integer.parseInt(pageNumString); } // 获取数据集合(这里假设是一个List) List<String> dataList = new ArrayList<String>(); for (int i = 0; i < 100; i++) { dataList.add("数据" + (i + 1)); } // 计算总页数 int totalCount = dataList.size(); int totalPage = (totalCount + pageSize - 1) / pageSize; // 获取当前页的数据 List<String> currentPageData = new ArrayList<String>(); int startIndex = (pageNum - 1) * pageSize; int endIndex = startIndex + pageSize; if (endIndex > totalCount) { endIndex = totalCount; } if (startIndex <= endIndex) { currentPageData = dataList.subList(startIndex, endIndex); } // 输出分页数据 out.println("<table>"); for (String data : currentPageData) { out.println("<tr><td>" + data + "</td></tr>"); } out.println("</table>"); // 输出分页导航栏 out.println("<div>"); out.println("<a href=\"?pageNum=1\">首页</a>"); if (pageNum > 1) { out.println("<a href=\"?pageNum=" + (pageNum - 1) + "\">上一页</a>"); } if (pageNum < totalPage) { out.println("<a href=\"?pageNum=" + (pageNum + 1) + "\">下一页</a>"); } out.println("<a href=\"?pageNum=" + totalPage + "\">末页</a>"); out.println("</div>"); %>

jsp页面分页功能(首页、下一页、上一页、末页)

1. 首先,需要在后台代码中获取数据总量,并计算出总页数。 2. 在jsp页面中,引入Bootstrap框架的分页组件,如下所示: ```html <nav aria-label="Page navigation"> <ul class="pagination"> <li> <a href="#" aria-label="Previous"> <span aria-hidden="true">&laquo;</span> </a> </li> <li><a href="#">1</a></li> <li><a href="#">2</a></li> <li><a href="#">3</a></li> <li><a href="#">4</a></li> <li><a href="#">5</a></li> <li> <a href="#" aria-label="Next"> <span aria-hidden="true">&raquo;</span> </a> </li> </ul> </nav> ``` 3. 在jsp页面中,根据当前页数和总页数,生成分页链接。同时,在链接中传递当前页数参数,在后台代码中根据参数获取对应页的数据。 ```html <nav aria-label="Page navigation"> <ul class="pagination"> <li> <a href="?pageNum=1" aria-label="First"> <span aria-hidden="true">&lt;&lt;</span> </a> </li> <li> <a href="?pageNum=${page.currentPage-1}" aria-label="Previous"> <span aria-hidden="true">&lt;</span> </a> </li> <c:forEach var="i" begin="1" end="${page.totalPage}"> <c:choose> <c:when test="${i == page.currentPage}"> <li class="active"><a href="#">${i}</a></li> </c:when> <c:otherwise> <li><a href="?pageNum=${i}">${i}</a></li> </c:otherwise> </c:choose> </c:forEach> <li> <a href="?pageNum=${page.currentPage+1}" aria-label="Next"> <span aria-hidden="true">&gt;</span> </a> </li> <li> <a href="?pageNum=${page.totalPage}" aria-label="Last"> <span aria-hidden="true">&gt;&gt;</span> </a> </li> </ul> </nav> ``` 4. 在后台代码中,根据当前页数和每页数据量,计算出需要查询的数据范围,并查询出数据列表。同时,将分页信息封装成Page对象,传递给jsp页面。 ```java int pageNum = Integer.parseInt(request.getParameter("pageNum")); int pageSize = 10; int start = (pageNum - 1) * pageSize; int end = start + pageSize; List<Data> dataList = getDataList(start, end); int total = getTotalCount(); int totalPage = (int) Math.ceil((double) total / pageSize); Page page = new Page(); page.setCurrentPage(pageNum); page.setPageSize(pageSize); page.setDataList(dataList); page.setTotalCount(total); page.setTotalPage(totalPage); request.setAttribute("page", page); request.getRequestDispatcher("data-list.jsp").forward(request, response); ```

相关推荐

最新推荐

recommend-type

springMVC如何将controller中数据传递到jsp页面

主要介绍了springMVC如何将controller中数据传递到jsp页面,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

jsp下页面跳转的几种方法小结

1. RequestDispatcher.forward() 在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet或者是JSP到另外的一个Servlet、JSP 或普通HTML文件,也即你的form提交至a.jsp,在a.jsp用到了...
recommend-type

将html页改成jsp的两种方式

将html页改成jsp有两种方法,第一种是直接修改html文件,另一种是新建jsp文件。下面为大家详细介绍下具体实现,感兴趣的朋友可以参考下
recommend-type

jsp页面中获取servlet请求中的参数的办法详解

在JAVA WEB应用中,如何获取servlet请求中的参数,本文讲解了jsp页面中获取servlet请求中的参数的办法
recommend-type

SpringBoot 使用Mybatis分页插件实现详解

主要介绍了SpringBoot 使用Mybatis分页插件实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

用matlab绘制高斯色噪声情况下的频率估计CRLB,其中w(n)是零均值高斯色噪声,w(n)=0.8*w(n-1)+e(n),e(n)服从零均值方差为se的高斯分布

以下是用matlab绘制高斯色噪声情况下频率估计CRLB的代码: ```matlab % 参数设置 N = 100; % 信号长度 se = 0.5; % 噪声方差 w = zeros(N,1); % 高斯色噪声 w(1) = randn(1)*sqrt(se); for n = 2:N w(n) = 0.8*w(n-1) + randn(1)*sqrt(se); end % 计算频率估计CRLB fs = 1; % 采样频率 df = 0.01; % 频率分辨率 f = 0:df:fs/2; % 频率范围 M = length(f); CRLB = zeros(M,1); for
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。