jsp-curd+分页倒导航案例

效果图
在这里插入图片描述

<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html lang="en">
<head><meta charset="UTF-8"><title>学生管理</title><!-- 引入Bootstrap的CDN --><link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet"><!-- 引入jQuery的CDN --><script src="https://code.jquery.com/jquery-3.5.1.min.js"></script><script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container"><h1 class="mt-5">学生管理</h1><!-- 搜索表单 --><div class="mb-3"><form id="searchForm" class="form-inline"><input type="text" id="keyword" class="form-control mr-2" placeholder="请输入关键词"><button type="button" class="btn btn-primary" onclick="searchStudents()">搜索</button></form></div><!-- 新增学生按钮 --><div class="mb-3"><button type="button" class="btn btn-success" onclick="showAddStudentModal()">新增学生</button></div><!-- 学生列表 --><div id="studentTable" class="table-responsive"></div><!-- 分页控件 --><nav><ul class="pagination" id="pagination"></ul></nav><!-- 模态框用于新增和编辑学生 --><div class="modal fade" id="studentModal" tabindex="-1" aria-labelledby="studentModalLabel" aria-hidden="true"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><h5 class="modal-title" id="studentModalLabel">学生信息</h5><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button></div><div class="modal-body"><form id="studentForm"><input type="hidden" id="studentId"><div class="form-group"><label for="name">姓名</label><input type="text" class="form-control" id="name" required></div><div class="form-group"><label for="gender">性别</label><select class="form-control" id="gender" required><option value="M"></option><option value="F"></option></select></div><div class="form-group"><label for="className">班级</label><input type="text" class="form-control" id="className" required></div><div class="form-group"><label for="studentNumber">学号</label><input type="text" class="form-control" id="studentNumber" required></div><div class="form-group"><label for="phoneNumber">手机号</label><input type="text" class="form-control" id="phoneNumber" required></div></form></div><div class="modal-footer"><button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button><button type="button" class="btn btn-primary" onclick="saveStudent()">保存</button></div></div></div></div>
</div><script>let currentPage = 1;let pageSize = 5;// 初始化加载学生列表$(document).ready(function() {loadStudents();});function loadStudents() {$.ajax({url: '/student',type: 'GET',data: {operation: 'findByKeyword',keyword: $('#keyword').val(),page: currentPage,pageSize: pageSize},success: function(response) {if (response.code === 200) {renderStudentTable(response.data);renderPagination(response.other);} else {alert(response.msg);}}});}function renderStudentTable(students) {let table = `<table class="table table-striped"><thead><tr><th>姓名</th><th>性别</th><th>班级</th><th>学号</th><th>手机号</th><th>操作</th></tr></thead><tbody>`;students.forEach(student => {table += `<tr data-id="${student.id}" data-name="${student.name}" data-gender="${student.gender}"data-classname="${student.className}" data-studentnumber="${student.studentNumber}" data-phonenumber="${student.phoneNumber}"><td>${student.name}</td><td>${student.gender}</td><td>${student.className}</td><td>${student.studentNumber}</td><td>${student.phoneNumber}</td><td><button class="btn btn-sm btn-primary" onclick="editStudent(this)">编辑</button><button class="btn btn-sm btn-danger" onclick="deleteStudent(${student.id})">删除</button></td></tr>`;});table += `</tbody></table>`;$('#studentTable').html(table);}function renderPagination(totalCount) {let totalPages = Math.ceil(totalCount / pageSize);let pagination = '';for (let i = 1; i <= totalPages; i++) {pagination += `<li class="page-item ${i === currentPage ? 'active' : ''}"><button class="page-link" onclick="changePage(${i})">${i}</button></li>`;}$('#pagination').html(pagination);}function changePage(page) {currentPage = page;loadStudents();}function searchStudents() {currentPage = 1;loadStudents();}function showAddStudentModal() {$('#studentId').val('');$('#name').val('');$('#gender').val('M');$('#className').val('');$('#studentNumber').val('');$('#phoneNumber').val('');$('#studentModalLabel').text('新增学生');$('#studentModal').modal('show');}function editStudent(button) {let row = $(button).closest('tr');$('#studentId').val(row.data('id'));$('#name').val(row.data('name'));$('#gender').val(row.data('gender'));$('#className').val(row.data('classname'));$('#studentNumber').val(row.data('studentnumber'));$('#phoneNumber').val(row.data('phonenumber'));$('#studentModalLabel').text('编辑学生');$('#studentModal').modal('show');}function saveStudent() {let student = {id: $('#studentId').val(),name: $('#name').val(),gender: $('#gender').val(),className: $('#className').val(),studentNumber: $('#studentNumber').val(),phoneNumber: $('#phoneNumber').val()};let operation = student.id ? 'updateStudent' : 'register';$.ajax({url: '/student',type: 'POST',data: {operation: operation,...student},success: function(response) {if (response.code === 200) {$('#studentModal').modal('hide');loadStudents();} else {alert(response.msg);}}});}function deleteStudent(id) {if (confirm('确定要删除这个学生吗?')) {$.ajax({url: '/student',type: 'POST',data: {operation: 'deleteStudent',studentId: id},success: function(response) {if (response.code === 200) {loadStudents();} else {alert(response.msg);}}});}}
</script>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/32153.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在 Equinix 上使用 MinIO 控制云数据成本

公有云改变了公司构建、部署和管理应用程序的方式&#xff0c;主要是向好的方向发展。在您刚开始使用时&#xff0c;公有云会提供基础架构、服务、支持和维护&#xff0c;以便快速启动和运行。它以几乎无限的方式提供最终的可伸缩性&#xff0c;无论应用程序的负载如何&#xf…

泄漏检测(LDAR)在建档和检测过程中造假套路和不规范行为

第一章 建档环节造假和不规范 一、 企业行为&#xff1a; 企业为了节约检测费&#xff0c;采取部分建档&#xff0c;部分密封点检测的行为 二、 第三方检测公司不规范行为&#xff1a; 1、台账信息不准确&#xff0c;密封点命名不准确 &…

同时使用接口文档swagger和knife4j

项目场景&#xff1a; springboot项目中同时使用接口文档swagger和knife4j 问题描述 在实体类中设置了字段必填的属性&#xff0c;在访问接口文档时出现异常 实体类关键代码片段 /*** 部门表 sys_dept*/ public class SysDept extends BaseEntity {private static final lo…

CleanMyMac中文版2024官方正式版下载!你的电脑清洁专家!

CleanMyMac中文版&#xff0c;你的电脑清洁专家&#xff01;✨&#x1f9f5; 你是否曾为电脑的卡顿和垃圾文件而烦恼&#xff1f;别担心&#xff0c;CleanMyMac中文版来帮你解决这些问题&#xff01;这款神奇的软件不仅可以帮助你清理垃圾文件&#xff0c;还能优化系统性能&…

Python实例:openpyxl读写单元格

原文链接&#xff1a;http://www.juzicode.com/python-example-openpyxl-access-data 本文介绍openpyxl模块几种读写单元格的方法&#xff0c;先手动创建一个表格&#xff0c;在代码里先用load_workbook()方法读取这个表格生成一个Workbook对象wb&#xff0c;再通过wb得到一个…

Linux编译器-gcc/g++使用 make/makefile最基础的功能

文章目录 一.引例&#xff1a;C语言C 二.程序翻译的过程预处理条件编译 编译汇编链接 三.链接--动静态链接链接是什么&#xff1f;动静态库为什么要有库&#xff1f;怎么办&#xff1f;证明&#xff1a; 优缺点静态链接的应用场景 四.make/makefile原理&#xff1a;为什么makef…

云资源管理系统-项目部署

云资源管理系统-项目部署 大家好&#xff0c;我是秋意零。 今天分享个人项目同时也是个人毕设项目&#xff0c;云平台资源管理系统。该系统具备对OpenStack最基本资源的生命周期管理&#xff0c;如&#xff1a;云主机、云盘、镜像、网络。 该篇主要介绍&#xff0c;项目在Li…

Redis Pub/Sub Redisson Topic

目录 一、Redis Pub/Sub二、Redisson Topic 一、Redis Pub/Sub Redis Pub/Sub实现了发布/订阅消息传递范式&#xff0c;发送端和订阅端通过channel进行关联。订阅端订阅一个或多个channel&#xff0c;而发送端向指定的channel发送消息。 Redis的Pub/Sub仅支持最多一次at-most-…

【LLM】PISSA:一种高效的微调方法

前言 介绍PISSA前&#xff0c;先简单过一下LLMs微调经常采用的LoRA&#xff08;Low-Rank Adaptation&#xff09;微调的方法&#xff0c;LoRA 假设权重更新的过程中有一个较低的本征秩&#xff0c;对于预训练的权重参数矩阵 W 0 ∈ R d k W_0 ∈ R^{dk} W0​∈Rdk&#xff0c…

Linux_内核缓冲区

目录 1、用户缓冲区概念 2、用户缓冲区刷新策略 3、用户缓冲区的好处 4、内核缓冲区 5、验证内核缓冲区 6、用户缓冲区存放的位置 7、全缓冲 结语 前言&#xff1a; Linux下的内核缓冲区存在于系统中&#xff0c;该缓冲区和用户层面的缓冲区不过同一个概念&#x…

数据结构与算法引入(Python)

华子目录 引入第一次尝试第二次尝试 算法的概念算法的五大特性 算法效率衡量执行时间单靠时间值绝对可信吗&#xff1f; 时间复杂度与 "大O记法"如何理解 “大O记法” 最坏时间复杂度时间复杂度的几条基本计算规则 算法分析常见的时间复杂度常见时间复杂度之间的关系…

2024最新版DataGrip安装教程-全网最全教程!!!

1.DataGrip下载安装 1.打开DataGrip官网&#xff0c;选择自己需要的版本下载即可&#xff1a; 2.进行安装&#xff1a; 3.重启打开&#xff1a; 我这个是正版激活码激活的&#xff0c;需要教程可以关注留言

网络爬虫中selenium和requests这两个工具有什么区别呢?

在自动化和网络爬虫的开发过程中&#xff0c;Selenium和Requests是两个常用的工具。尽管它们都可以用于从互联网上获取数据&#xff0c;但它们在用途、功能和工作原理上存在显著的差异。以下将详细探讨Selenium和Requests之间的主要区别。 一、用途和定位 Selenium&#xff1…

互联网的盈利模式

1. 广告收入 展示广告&#xff1a;通过在网站或应用上展示横幅广告、视频广告等&#xff0c;按点击次数&#xff08;CPC&#xff09;或展示次数&#xff08;CPM&#xff09;收费。搜索广告&#xff1a;通过搜索引擎上的关键词竞价广告&#xff0c;按点击次数收费。社交媒体广告…

conda 常用指令大集合

增删改查 注&#xff1a;所有的环境都保存在路径 ${anaconda安装目录}/env/[环境名]下 查看现有环境 (星号✳️代表当前&#xff09; conda info --env 创建 conda 环境 conda create -n [环境名] python[版本号] 删除 conda 环境 conda remove -n [环境名] --all 修改…

如何通过京东API优雅地获取商品评论数据

在当今电商领域&#xff0c;用户评论成为了影响消费者购买决策的关键因素之一。京东&#xff0c;作为中国领先的电商平台&#xff0c;深知商品评论的重要性&#xff0c;并通过其开放平台提供了商品评论数据接口&#xff0c;让开发者能够轻松获取商品的用户反馈信息。本文将指导…

[Redis]持久化机制

众所周知&#xff0c;Redis是内存数据库&#xff0c;也就是把数据存在内存上&#xff0c;读写速度很快&#xff0c;但是&#xff0c;内存的数据容易丢失&#xff0c;为了数据的持久性&#xff0c;还得把数据存储到硬盘上 也就是说&#xff0c;内存有一份数据&#xff0c;硬盘也…

如何在 Windows 上安装 Docker Desktop

如何在 Windows 上安装 Docker Desktop Docker 是一个开放平台&#xff0c;用于开发、部署和运行应用程序。Docker Desktop 是 Docker 在 Windows 和 macOS 上的官方客户端&#xff0c;它使得开发者能够轻松地在本地环境中构建、运行和共享容器化应用程序。本文将详细介绍如何…

RuoYi Swagger请求401

问题描述&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 使用ruoyi-vue分离版&#xff0c;访问swagger&#xff0c;发现接口都调用失败&#xff1a;401 解决方案&#xff1a; 最终解决问题如下步骤&#xff1a; 1、 调用swagger中的接口&#xff0c;报错&a…

如何在SpringSecurity中配置基于角色的访问控制?

在Spring Security中配置基于角色的访问控制是保护应用程序和资源不被未授权访问的基本策略之一。这里&#xff0c;我们将详细介绍如何在配置中和方法级别上实现基于角色的访问控制。 1. 配置基于角色的访问控制 在Spring Security的配置类中&#xff0c;你可以使用HttpSecur…