JSP数据分页导出下载显示进度条样式

JSP是一种动态网页开发技术,可以用于开发数据分页、导出、下载等功能。在实现这些功能时,我们通常需要使用JavaScript和CSS来实现进度条样式。本文将介绍如何使用JSP实现数据分页、导出、下载和显示进度条样式。

数据分页

在JSP中,可以使用JSTL标签库和EL表达式来实现数据分页。以下是示例:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<%
    int pageSize = 10;
    int currentPage = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page"));
    int start = (currentPage - 1) * pageSize;
    int end = start + pageSize;
    List<Customer> customers = CustomerDAO.getCustomers(start, end);
    int total = CustomerDAO.getCustomerCount();
    int totalPages = (int) Math.ceil((double) total / pageSize);
%>

<table>
    <thead>
        <tr>
            <th>ID</th>
            <th>Name</th>
            <th>Age</th>
        </tr>
    </thead>
    <tbody>
        <c:forEach var="customer" items="${customers}">
            <tr>
                <td>${customer.id}</td>
                <td>${customer.name}</td>
                <td>${customer.age}</td>
            </tr>
        </c:forEach>
    </tbody>
</table>

<fmt:formatNumber value="${currentPage}" pattern="#,##0"/> / <fmt:formatNumber value="${totalPages}" pattern="#,##0"/>

<c:if test="${currentPage > 1}">
    <a href="?page=${currentPage - 1}">Prev</a>
</c:if>

<c:if test="${currentPage < totalPages}">
    <a href="?page=${currentPage + 1}">Next</a>
</c:if>

在上面的示例中,我们首先定义了pageSize、currentPage、start、end、customers、total、totalPages等变量。然后,我们使用JSTL标签库和EL表达式来实现数据分页。在分页时,我们使用了CustomerDAO.getCustomers(start, end)方法来获取指定范围内的客户列表,使用CustomerDAO.getCustomerCount()方法来获取客户总数。最后,我们使用JSTL标签库和EL表达式来显示分页信息和分页链接。

数据导出

在JSP中,可以使用Apache POI库来实现数据导出。以下是示例:

<%@ page import="org.apache.poi.hssf.usermodel.HSSFWorkbook" %>
<%@ page import="org.apache.poi.ss.usermodel.*" %>

<%
    List<Customer> customers = CustomerDAO.getCustomers();
    Workbook workbook = new HSSFWorkbook();
    Sheet sheet = workbook.createSheet("Customers");
    Row headerRow = sheet.createRow(0);
    headerRow.createCell(0).setCellValue("ID");
    headerRow.createCell(1).setCellValue("Name");
    headerRow.createCell(2).setCellValue("Age");
    int rowNum = 1;
    for (Customer customer : customers) {
        Row row = sheet.createRow(rowNum++);
        row.createCell(0).setCellValue(customer.getId());
        row.createCell(1).setCellValue(customer.getName());
        row.createCell(2).setCellValue(customer.getAge());
    }
    response.setContentType("application/vnd.ms-excel");
    response.setHeader("Content-Disposition", "attachment; filename=customers.xls");
    workbook.write(response.getOutputStream());
%>

在上面的示例中,我们首先使用CustomerDAO.getCustomers()方法获取所有客户列表。然后,我们使用Apache POI库创建一个Workbook对象,并创建一个名为“Customers”的Sheet对象。接着,我们创建一个表头行,并设置表头单元格的值。然后,我们遍历客户列表,创建行对象,并设置单元格的值。最后,我们设置响应的Content-Type和Content-Disposition头,并将Workbook对象写入响应的输出流中。

进度条样式

在JSP中,可以使用JavaScript和CSS来实现进度条样式。以下是示例:

<style>
    .progress {
        width: 100%;
        height: 20px;
        background-color: #f2f2f2;
        border-radius: 5px;
        margin-bottom: 20px;
    }
    .progress-bar {
        height: 100%;
        background-color: #4CAF50;
        border-radius: 5px;
        text-align: center;
        line-height: 20px;
        color: white;
    }
</style>

<div class="progress">
    <div class="progress-bar" style="width: 0%">0%</div>
</div>

<script>
    var xhr = new XMLHttpRequest();
    xhr.open('GET', 'data.jsp', true);
    xhr.onprogress = function (e) {
        if (e.lengthComputable) {
            var percentComplete = (e.loaded / e.total) * 100;
            document.querySelector('.progress-bar').style.width = percentComplete + '%';
            document.querySelector('.progress-bar').textContent = percentComplete.toFixed(2) + '%';
        }
    };
    xhr.onload = function (e) {
        document.querySelector('.progress-bar').style.width = '100%';
        document.querySelector('.progress-bar').textContent = '100%';
    };
    xhr.send();
</script>

在上面的示例中,我们首先定义了一个进度条样式。然后,我们创建一个包含进度条的DIV元素。接着,我们使用JavaScript创建一个XMLHttpRequest对象,并使用onprogress事件来更新进度条的宽度和文本内容。最后,我们使用onload事件来设置进度条的宽度和文本内容。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JSP数据分页导出下载显示进度条样式 - Python技术站

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

相关文章

  • C#队列Queue用法实例分析

    C#队列Queue用法实例分析 什么是队列? 队列(queue)是一种先进先出(First-In-First-Out,FIFO)的数据结构,和栈(stack)不同,队列的两端分别称为队首(front)和队尾(rear)。在队列中,新元素插入到队尾(rear),而队首的元素一直存在队列中,直到到达队列的结尾。要从队列中删除元素,需要从队首开始,一直到要删除的元…

    C# 2023年6月7日
    00
  • C#不登录电脑启动程序

    下面我详细讲解一下“C#不登录电脑启动程序”的完整攻略。 1. 如何实现不登录电脑启动程序 实现不登录电脑启动程序的主要步骤是在注册表中添加一个启动项,具体步骤如下: 创建一个Windows应用程序项目; 在Program.cs的Main方法中添加以下代码: csharp RegistryKey run = Registry.CurrentUser.Open…

    C# 2023年5月15日
    00
  • 使用.Net Core编写命令行工具(CLI)的方法

    使用.Net Core编写命令行工具(CLI)的方法 在.Net Core中,可以使用C#编写命令行工具(CLI),以便在终端中执行各种任务。本攻略将详细介绍使用.Net Core编写命令行工具(CLI)的方法。 步骤 按照以下步骤使用.Net Core编写命令行工具(CLI): 创建一个新的.Net Core控制台应用程序。 dotnet new cons…

    C# 2023年5月16日
    00
  • 快速解决owin返回json字符串多带了双引号”多了重string转义字符串

    当我们在使用OWIN框架中的Web API时,常常会将数据以JSON字符串的形式返回给客户端。但有时候,在返回的JSON字符串中会出现多余的双引号或转义字符串的情况,这通常是因为我们在序列化JSON时,忽略了JSON.Net中的一些配置。 为了解决这一问题,我们可以采取以下几个步骤: 确认配置 首先,我们需要确认我们的JSON.NET配置是否正确。确保配置中…

    C# 2023年5月31日
    00
  • 如何通过C#/VB.NET代码将PowerPoint转换为HTML

    利用PowerPoint可以很方便的呈现多媒体信息,且信息形式多媒体化,表现力强。但难免在某些情况下我们会需要将PowerPoint转换为HTML格式。因为HTML文档能独立于各种操作系统平台(如Unix,Windows等)。并且它可以加入图片、声音、动画、影视等内容,还能从一个文件跳转到另一个文件,与世界各地主机的文件连接。通过HTML可以表现出丰富多彩的…

    C# 2023年5月5日
    00
  • C# 基于消息发布订阅模型的示例(上)

    让我来详细讲解一下「C# 基于消息发布订阅模型的示例(上)」的完整攻略。 什么是消息发布订阅模型? 消息发布订阅模型是一种系统架构模式,它支持应用程序之间的松耦合通信,允许一个事件的发布者将事件发送给多个订阅者。在这种模式中,发布者并不知道订阅者的存在,订阅者则会接收到发布者发布的所有事件。 实现消息发布订阅模型的步骤 以下是实现消息发布订阅模型的基本步骤:…

    C# 2023年5月31日
    00
  • 在js中实现邮箱格式的验证方法(推荐)

    在 JavaScript 中实现邮箱格式验证方法 在 JavaScript 中,可以使用正则表达式实现邮箱格式验证。本攻略将详细介绍如何在 JavaScript 中实现邮箱格式验证方法,并提供多种验证方式的示例。 步骤一:编写正则表达式 在 JavaScript 中,可以使用正则表达式来验证邮箱格式。以下是一个简单的邮箱格式验证正则表达式: const em…

    C# 2023年5月17日
    00
  • 实现ASP.NET多文件上传程序代码

    实现ASP.NET多文件上传程序是一个常见的需求,可以通过以下步骤来实现: 页面设计 首先,在ASP.NET页面上添加文件上传控件,代码如下: <div> <asp:Label ID="lblUpload" runat="server" Text="Upload files:"&g…

    C# 2023年5月31日
    00
合作推广
合作推广
分享本页
返回顶部