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…

同时使用接口文档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…

【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;需要教程可以关注留言

[Redis]持久化机制

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

RuoYi Swagger请求401

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

【Mysql】DQL操作单表、创建数据库、排序、聚合函数、分组、limit关键字

DQL操作单表 1.1 创建数据库 •创建一个新的数据库 db2 CREATE DATABASE db2 CHARACTER SET utf8;•将db1数据库中的 emp表 复制到当前 db2数据库 ** 1.2 排序** 通过 ORDER BY 子句,可以将查询出的结果进行排序 (排序只是显示效果,不会影响真实数据) 语法结构&#xff1a;…

算法:渐进记号的含义及时间复杂度计算

渐进记号及时间复杂度计算 渐近符号渐近记号 Ω \Omega Ω渐进记号 Θ \Theta Θ渐进记号小 ο \omicron ο渐进记号小 ω \omega ω渐进记号大 O \Omicron O常见的时间复杂度关系 时间复杂度计算&#xff1a;递归方程代入法迭代法套用公式法 渐近符号 渐近记号 Ω \Omega Ω …

每天写java到期末考试--接口1--基础--6.22

规则&#xff1a; 练习&#xff1a; 抽象类的抽象方法 动物类Animal package 期末复习;public abstract class Animal {private String name;private int age;//1.空构造public Animal(){}public Animal(String name,int age){this.ageage;this.namename;}public String getNa…

【C++提高编程-11】----C++ STL常用集合算法

&#x1f3a9; 欢迎来到技术探索的奇幻世界&#x1f468;‍&#x1f4bb; &#x1f4dc; 个人主页&#xff1a;一伦明悦-CSDN博客 ✍&#x1f3fb; 作者简介&#xff1a; C软件开发、Python机器学习爱好者 &#x1f5e3;️ 互动与支持&#xff1a;&#x1f4ac;评论 &…

Nginx 负载均衡实现上游服务健康检查

Nginx 负载均衡实现上游服务健康检查 Author&#xff1a;Arsen Date&#xff1a;2024/06/20 目录 Nginx 负载均衡实现上游服务健康检查 前言一、Nginx 部署并新增模块二、健康检查配置2.1 准备 nodeJS 应用程序2.2 Nginx 配置负载均衡健康检查 小结 前言 如果你使用云负载均衡…

【Linux】 yum学习

yum介绍 在Linux系统中&#xff0c;yum&#xff08;Yellowdog Updater, Modified&#xff09;是一个用于管理软件包的命令行工具&#xff0c;特别适用于基于RPM&#xff08;Red Hat Package Manager&#xff09;的系统&#xff0c;如CentOS、Fedora和Red Hat Enterprise Linux…

【Arduino】实验使用ESP32单片机根据光线变化控制LED小灯开关(图文)

今天小飞鱼继续来实验ESP32的开发&#xff0c;这里使用关敏电阻来配合ESP32做一个我们平常接触比较多的根据光线变化开关灯的实验。当白天时有太阳光&#xff0c;则把小灯关闭&#xff1b;当光线不好或者黑天时&#xff0c;自动打开小灯。 int value;void setup() {pinMode(34…

音视频开发29 FFmpeg 音频编码- 流程以及重要API,该章节使用AAC编码说明

此章节的一些参数&#xff0c;需要先掌握aac的一些基本知识&#xff1a;​​​​​​aac音视频开发13 FFmpeg 音频 --- 常用音频格式AAC&#xff0c;AAC编码器&#xff0c; AAC ADTS格式 。_ffmpeg aac data数据格式-CSDN博客 目的&#xff1a; 从本地⽂件读取PCM数据进⾏AAC格…