JSP分页显示的实例代码

JSP分页显示的实例代码需要以下步骤:

1. 准备数据

首先,我们需要准备一些数据,以便在JSP页面中分页显示。可以从数据库中查询相关数据,或者手动设置一些数据。

int pageSize = 5; //每页显示5条数据
int currentPage = 1; //当前页码
List<String> dataList = new ArrayList<>(); //数据列表
dataList.add("数据1");
dataList.add("数据2");
...

2. 计算分页信息

根据当前页码和每页显示的数据量,可以计算出总共有多少页,并且把当前页码转换成数据库中的偏移量。

int totalCount = dataList.size(); //总共有多少条数据
int totalPage = (totalCount + pageSize - 1) / pageSize; //总共有多少页
int offset = (currentPage - 1) * pageSize; //当前页码对应的偏移量

3. 显示分页条

为了让用户更方便地浏览分页数据,我们需要在页面上显示一个分页条,用户可以点击分页条上的链接来切换页面。以下是一个简单的分页条模板:

<div class="pagination">
  <ul>
    <% if(currentPage == 1){ %>
      <li class="disabled"><a href="#">第一页</a></li>
      <li class="disabled"><a href="#">上一页</a></li>
    <% } else { %>
      <li><a href="?page=1">第一页</a></li>
      <li><a href="?page=<%= currentPage - 1 %>">上一页</a></li>
    <% } %>

    <% for(int i = 1; i <= totalPage; i++){ %>
      <% if(i == currentPage){ %>
        <li class="active"><a href="#"><%= i %></a></li>
      <% } else { %>
        <li><a href="?page=<%= i %>"><%= i %></a></li>
      <% } %>
    <% } %>

    <% if(currentPage == totalPage){ %>
      <li class="disabled"><a href="#">下一页</a></li>
      <li class="disabled"><a href="#">最后一页</a></li>
    <% } else { %>
      <li><a href="?page=<%= currentPage + 1 %>">下一页</a></li>
      <li><a href="?page=<%= totalPage %>">最后一页</a></li>
    <% } %>
  </ul>
</div>

在分页条模板中,我们使用了JSP的标签,可以根据当前页码和总页数来动态生成链接。如果当前页是第一页或者最后一页,链接会被禁用。

4. 显示分页数据

最后一步是在页面上显示分页数据。根据偏移量和每页显示的数据量,从数据列表中取出需要显示的数据,并且遍历它们。

<table>
  <tr>
    <th>编号</th>
    <th>数据</th>
  </tr>

  <% for(int i = offset; i < Math.min(offset + pageSize, dataList.size()); i++){ %>
    <tr>
      <td><%= i + 1 %></td>
      <td><%= dataList.get(i) %></td>
    </tr>
  <% } %>
</table>

以上就是完整的JSP分页显示的实例代码攻略。以下是两个示例说明:

示例1:从数据库中查询数据

int pageSize = 5; //每页显示5条数据
int currentPage = 1; //当前页码
int totalCount = 0; //总共有多少条数据
List<String> dataList = new ArrayList<>(); //数据列表

//查询总共有多少条数据
//SELECT COUNT(*) FROM table_name
totalCount = 100;

//查询当前页需要显示的数据
//SELECT * FROM table_name LIMIT offset,pageSize
int offset = (currentPage - 1) * pageSize;
sql = "SELECT * FROM table_name LIMIT " + offset + "," + pageSize;
ResultSet rs = statement.executeQuery(sql);
while(rs.next()){
    String data = rs.getString("data");
    dataList.add(data);
}

示例2:使用Restful API获取数据

int pageSize = 5; //每页显示5条数据
int currentPage = 1; //当前页码
int totalCount = 0; //总共有多少条数据
List<String> dataList = new ArrayList<>(); //数据列表

//查询总共有多少条数据
//GET /api/data/count
httpGet = new HttpGet("/api/data/count");
HttpResponse response = client.execute(httpGet);
HttpEntity entity = response.getEntity();
String content = EntityUtils.toString(entity);
totalCount = Integer.parseInt(content);

//查询当前页需要显示的数据
//GET /api/data?page=currentPage&pageSize=pageSize
int offset = (currentPage - 1) * pageSize;
String url = "/api/data?page=" + currentPage + "&pageSize=" + pageSize;
httpGet = new HttpGet(url);
response = client.execute(httpGet);
entity = response.getEntity();
content = EntityUtils.toString(entity);
JSONArray jsonArray = new JSONArray(content);
for(int i = 0; i < jsonArray.length(); i++){
    String data = jsonArray.getJSONObject(i).getString("data");
    dataList.add(data);
}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JSP分页显示的实例代码 - Python技术站

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • SpringMVC静态资源配置过程详解

    简介 在SpringMVC应用程序中,静态资源是指不需要动态生成的文件,例如CSS、JavaScript、图片等。在本文中,我们将介绍如何在SpringMVC应用程序中配置静态资源,并提供两个示例说明。 静态资源配置 在SpringMVC应用程序中,我们可以通过以下两种方式来配置静态资源: 使用<mvc:resources>元素配置静态资源。 使…

    Java 2023年5月17日
    00
  • android相册选择图片的编码实现代码

    下面我将详细讲解”Android相册选择图片的编码实现代码”的完整攻略。 一、前置知识 在实现”Android相册选择图片的编码”之前,需要掌握一些相关的前置知识,包括: Android中的Intent机制 Android中的Uri、Bitmap和File类 Android中的图片压缩技巧 二、实现步骤 在掌握了相关的前置知识后,下面我们来讲解”Androi…

    Java 2023年6月1日
    00
  • 采集教程及采集分页设置问题

    下面是详细的采集教程及采集分页设置问题的完整攻略。 采集教程 什么是采集 采集是指从一个或多个网站上自动爬取(提取)数据的技术,是一种自动化的数据采集方法。 如何进行采集 进行采集需要用到一些工具,常用的工具有Python爬虫框架Scrapy、PHP采集工具PHP Simple HTML DOM Parser等。 其中,Scrapy是一款强大的Python爬…

    Java 2023年6月16日
    00
  • Spring Boot 接口加解密,新姿势来了!

    1. 介绍 在我们日常的Java开发中,免不了和其他系统的业务交互,或者微服务之间的接口调用 如果我们想保证数据传输的安全,对接口出参加密,入参解密。 但是不想写重复代码,我们可以提供一个通用starter,提供通用加密解密功能 2. 前置知识 2.1 hutool-crypto加密解密工具 hutool-crypto提供了很多加密解密工具,包括对称加密,非…

    Java 2023年4月17日
    00
  • 基于Java回顾之JDBC的使用详解

    基于Java回顾之JDBC的使用详解 1. 什么是JDBC JDBC是Java DataBase Connectivity的缩写,它是用于Java语言操作关系型数据库的应用程序接口(API)。JDBC提供了一种标准的方法,用于连接和操作各种类型的关系型数据库。 JDBC规范定义了一套Java类库,通过这些类库,我们可以在Java程序中使用SQL命令执行各种数…

    Java 2023年5月19日
    00
  • MyBatis基于pagehelper实现分页原理及代码实例

    下面是”MyBatis基于pagehelper实现分页原理及代码实例”的完整攻略。 1. 什么是PageHelper PageHelper是一个开源的MyBatis分页插件,它能够实现对MyBatis查询结果的分页操作。PageHelper可以自动进行物理分页,通过PageHelper提供的简单接口,我们能够不必手动编写复杂的分页语句,从而快速地实现数据的分…

    Java 2023年6月15日
    00
  • 使用Log4j为项目配置日志输出应用详解以及示例演示的实现分析

    使用Log4j为项目配置日志输出应用详解以及实现分析 介绍 日志是软件开发中不可或缺的一个环节,能够对应用运行过程进行记录、分析和监控。Apache Log4j是Java中一个常用的日志框架,可以灵活地进行配置和使用。本攻略将对Log4j的使用进行详细讲解,并提供两个示例实现演示。 Log4j的配置 在项目中使用Log4j需要进行相关配置,一般包括三个方面:…

    Java 2023年5月26日
    00
  • java CompletableFuture实现异步编排详解

    Java CompletableFuture实现异步编排详解 Java中Future,CompletableFuture这两个类非常强大,可以帮助我们完成异步编程。在这里,我们将介绍如何使用Java的CompletableFuture类来实现异步编排的详细攻略。 CompletableFuture的介绍 CompletableFuture是Java 8中新增…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部