fix part1
Signed-off-by: Chenx221 <chenx221@yandex.com>
This commit is contained in:
parent
e04d0a050c
commit
4d6a5ab635
167
project2/README.md
Normal file
167
project2/README.md
Normal file
@ -0,0 +1,167 @@
|
|||||||
|
# Readme
|
||||||
|
|
||||||
|
- /course
|
||||||
|
- ~/all
|
||||||
|
- 课程信息页 [Get]
|
||||||
|
- admin,teacher,student
|
||||||
|
- courseList|courseList_t|courseList_s
|
||||||
|
- ~/infomodv2
|
||||||
|
- 课程信息修改页 [Get]
|
||||||
|
- admin,teacher,student
|
||||||
|
- courseopv2|courseopv2_t|courseopv2_s
|
||||||
|
- ~/delinfo
|
||||||
|
- 课程信息删除 [Post]
|
||||||
|
- admin
|
||||||
|
- *Redirect*.infomodev2
|
||||||
|
- ~/addinfo
|
||||||
|
- 课程信息添加 [Post]
|
||||||
|
- admin
|
||||||
|
- *Redirect*.infomodev2
|
||||||
|
- ~/modinfo
|
||||||
|
- 课程信息修改 [Post]
|
||||||
|
- admin
|
||||||
|
- *Redirect*.infomodev2
|
||||||
|
- ~/query
|
||||||
|
- 课程信息查询 [Post]
|
||||||
|
- admin,teacher,student
|
||||||
|
- courseQueryResult|courseQueryResult_t|courseQueryResult_s
|
||||||
|
- /output
|
||||||
|
- ~/export-csv [Get]
|
||||||
|
- 学生、课程、成绩、教师信息下载
|
||||||
|
- admin,teacher
|
||||||
|
- ~/get-csv
|
||||||
|
- 获取已经生成的csv文件 [Get]
|
||||||
|
- admin,teacher
|
||||||
|
- /person
|
||||||
|
- ~/settings
|
||||||
|
- 个人设置页 [Get]
|
||||||
|
- admin,teacher,student
|
||||||
|
- person|person_t|person_s
|
||||||
|
- ~/uploadAvatar
|
||||||
|
- 头像上传 [Post]
|
||||||
|
- admin,teacher,student
|
||||||
|
- ~/image
|
||||||
|
- 获取用户头像 [Get]
|
||||||
|
- admin,teacher,student
|
||||||
|
- /score
|
||||||
|
- ~/all
|
||||||
|
- 学生成绩页
|
||||||
|
- admin
|
||||||
|
- ~/all_t
|
||||||
|
- 学生成绩页(教师版)
|
||||||
|
- teacher
|
||||||
|
- ~/infomodv2
|
||||||
|
- 学生成绩修改页
|
||||||
|
- admin
|
||||||
|
- ~/infomodv2_t
|
||||||
|
- 学生成绩修改页(教师版)
|
||||||
|
- teacher
|
||||||
|
- ~/query
|
||||||
|
- 学生成绩查询
|
||||||
|
- admin,teacher
|
||||||
|
- ~/modinfo
|
||||||
|
- 学生成绩修改
|
||||||
|
- admin
|
||||||
|
- ~/delinfo
|
||||||
|
- 学生成绩删除
|
||||||
|
- admin
|
||||||
|
- ~/addinfo
|
||||||
|
- 学生成绩添加
|
||||||
|
- admin,teacher
|
||||||
|
- /student
|
||||||
|
- ~/all
|
||||||
|
- 学生信息查询页
|
||||||
|
- admin
|
||||||
|
- ~/all_t
|
||||||
|
- 学生信息查询页(教师版)
|
||||||
|
- teacher
|
||||||
|
- ~/queryinfo
|
||||||
|
- 学生信息查询(条件)页
|
||||||
|
- admin
|
||||||
|
- ~/queryinfo_t
|
||||||
|
- 学生信息查询(条件)页(教师版)
|
||||||
|
- teacher
|
||||||
|
- ~/query
|
||||||
|
- 学生信息查询
|
||||||
|
- admin
|
||||||
|
- ~/modstep1
|
||||||
|
- 学生信息修改页
|
||||||
|
- admin
|
||||||
|
- ~/modinfo
|
||||||
|
- 学生信息修改
|
||||||
|
- admin,teacher
|
||||||
|
- ~/infomodv2
|
||||||
|
- 学生信息修改页(v2)
|
||||||
|
- admin
|
||||||
|
- ~/infomodv2_t
|
||||||
|
- 学生信息修改页(v2)(教师版)
|
||||||
|
- teacher
|
||||||
|
- ~/delinfo
|
||||||
|
- 学生信息删除
|
||||||
|
- admin
|
||||||
|
- ~/delinfoT
|
||||||
|
- 学生信息删除(教师版)
|
||||||
|
- teacher
|
||||||
|
- ~/addinfo
|
||||||
|
- 学生信息添加
|
||||||
|
- admin,teacher
|
||||||
|
- /system
|
||||||
|
- ~/settings
|
||||||
|
- 系统设置页
|
||||||
|
- admin
|
||||||
|
- ~/clean
|
||||||
|
- 清理垃圾
|
||||||
|
- admin
|
||||||
|
- /teacher
|
||||||
|
- ~/mamage
|
||||||
|
- 教师信息管理页
|
||||||
|
- admin
|
||||||
|
- ~/query
|
||||||
|
- 教师信息查询
|
||||||
|
- admin
|
||||||
|
- ~/mod
|
||||||
|
- 教师信息修改
|
||||||
|
- admin
|
||||||
|
- ~/del
|
||||||
|
- 教师信息删除
|
||||||
|
- admin
|
||||||
|
- ~/add
|
||||||
|
- 教师信息添加
|
||||||
|
- admin
|
||||||
|
- /login
|
||||||
|
- 用户登录页(和/相同)
|
||||||
|
- everyone
|
||||||
|
- /signup
|
||||||
|
- 用户(管理员)注册
|
||||||
|
- everyone
|
||||||
|
- /user
|
||||||
|
- ~/usermanage
|
||||||
|
- 用户管理页
|
||||||
|
- admin
|
||||||
|
- ~/create
|
||||||
|
- 用户创建
|
||||||
|
- admin
|
||||||
|
- ~/reset
|
||||||
|
- 重设密码
|
||||||
|
- admin
|
||||||
|
- ~/userdisabled
|
||||||
|
- 禁用用户
|
||||||
|
- admin
|
||||||
|
- ~/userenabled
|
||||||
|
- 启用用户
|
||||||
|
- admin
|
||||||
|
- /success
|
||||||
|
- 废弃的成功状态页
|
||||||
|
- None
|
||||||
|
- /fail
|
||||||
|
- 废弃的失败状态页
|
||||||
|
- None
|
||||||
|
- /dashboard
|
||||||
|
- 管理员登陆后的首页
|
||||||
|
- admin
|
||||||
|
- /dashboard-t
|
||||||
|
- 教师登陆后的首页
|
||||||
|
- teacher
|
||||||
|
- /dashborad-s
|
||||||
|
- 学生登录后的首页
|
||||||
|
- student
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,211 @@
|
|||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
|
||||||
|
<meta http-equiv="x-ua-compatible" content="ie=edge"/>
|
||||||
|
<title>成绩信息查询结果页</title>
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"/>
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700;900&display=swap"
|
||||||
|
rel="stylesheet">
|
||||||
|
<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/mdb.min.css"/>
|
||||||
|
<style>
|
||||||
|
.table-container {
|
||||||
|
min-width: 80vw; /* 设置最小宽度为视窗宽度的80% */
|
||||||
|
min-height: 80vh; /* 设置最小高度为视窗高度的80% */
|
||||||
|
/*display: flex;*/
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-container table {
|
||||||
|
width: 100%;
|
||||||
|
/*height: 100%;*/
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body style="font-family: 'Noto Sans SC Regular',serif">
|
||||||
|
<!--Main Navigation-->
|
||||||
|
<header>
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-light bg-light" style="z-index: 1;min-height: 58.59px">
|
||||||
|
<div class="container">
|
||||||
|
<button class="navbar-toggler" type="button" data-mdb-toggle="collapse"
|
||||||
|
data-mdb-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
|
||||||
|
aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<i class="fas fa-bars"></i>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||||
|
<a class="navbar-brand mt-2 mt-lg-0" href="#">
|
||||||
|
<i class="fas fa-chalkboard-user me-2"></i>
|
||||||
|
教务管理系统
|
||||||
|
</a>
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link active" aria-current="page" href="/dashboard">首页</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown1" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
学生管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown1">
|
||||||
|
<li><a class="dropdown-item" href="/student/all">学生信息显示</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/student/queryinfo">学生信息查询</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/student/modstep1">学生信息修改(旧)</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/student/infomodv2">学生信息修改</a></li>
|
||||||
|
<li>
|
||||||
|
<hr class="dropdown-divider" />
|
||||||
|
</li>
|
||||||
|
<li><a class="dropdown-item" href="/score/all">成绩查看</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/score/infomodv2">成绩管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown2" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
教师管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown2">
|
||||||
|
<li><a class="dropdown-item" href="/teacher/manage">教师信息管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown3" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
课程管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown3">
|
||||||
|
<li><a class="dropdown-item" href="/course/all">课程查看</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/course/infomodv2">课程管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown4" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
系统管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown4">
|
||||||
|
<li><a class="dropdown-item" href="/person/settings">个人设定</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/system/settings">系统设定</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/user/usermanage">用户管理</a></li>
|
||||||
|
<%-- <li><a class="dropdown-item" href="#">日志管理</a></li>--%>
|
||||||
|
<li><a class="dropdown-item" href="#">版本信息</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="dropdown">
|
||||||
|
<a class="dropdown-toggle d-flex align-items-center hidden-arrow" href="#"
|
||||||
|
id="navbarDropdownMenuAvatar" role="button" data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
<i class="fas fa-circle-user fa-lg me-1"></i>
|
||||||
|
${username}
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdownMenuAvatar">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="${pageContext.request.contextPath}/logout">登出</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<!--Main Navigation-->
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
<main>
|
||||||
|
<div class="bg-image shadow-2-strong vh-100"
|
||||||
|
style="background-image: url('${pageContext.request.contextPath}/resources/img/jason-blackeye-nyL-rzwP-Mk-unsplash.jpg'); margin-top: -58.59px;">
|
||||||
|
<div class="mask d-flex align-items-center h-100" style="background-color: hsla(0, 0%, 100%, 0.5);">
|
||||||
|
<div class="container d-flex justify-content-center">
|
||||||
|
<div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<button type="button" class="btn btn-primary" onclick="function goBack() {
|
||||||
|
window.history.back(); //返回上一页
|
||||||
|
}
|
||||||
|
goBack()">返回
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<button type="button" class="btn btn-primary" onclick="downloadCSV()">导出</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="table-container rounded-4 shadow-3-strong"
|
||||||
|
style="background-color: rgba(255,255,255,0.9); overflow-y: auto; max-height: 400px;">
|
||||||
|
<table class="table table-striped table-hover border-primary">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th scope="col">成绩ID</th>
|
||||||
|
<th scope="col">学号</th>
|
||||||
|
<th scope="col">学生姓名</th>
|
||||||
|
<th scope="col">课程ID</th>
|
||||||
|
<th scope="col">课程名</th>
|
||||||
|
<th scope="col">成绩</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:forEach var="score" items="${scores}">
|
||||||
|
<tr>
|
||||||
|
<td>${score.scoreID}</td>
|
||||||
|
<td>${score.student.id}</td>
|
||||||
|
<td>${score.student.name}</td>
|
||||||
|
<td>${score.course.courseID}</td>
|
||||||
|
<td>${score.course.courseName}</td>
|
||||||
|
<td>${score.score}</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<footer class="bg-link text-center text-lg-start ">
|
||||||
|
</footer>
|
||||||
|
<!-- Footer -->
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/mdb.min.js"></script>
|
||||||
|
<script>
|
||||||
|
function downloadCSV() {
|
||||||
|
// 获取文件名
|
||||||
|
var fileName = "${download}";
|
||||||
|
|
||||||
|
// 构建文件下载链接
|
||||||
|
var downloadLink = "/output/get-csv?filename=" + fileName;
|
||||||
|
|
||||||
|
// 创建一个隐藏的<a>元素并设置下载链接
|
||||||
|
var linkElement = document.createElement('a');
|
||||||
|
linkElement.href = downloadLink;
|
||||||
|
linkElement.target = "_blank";
|
||||||
|
linkElement.download = fileName;
|
||||||
|
|
||||||
|
// 将<a>元素添加到DOM树中
|
||||||
|
document.body.appendChild(linkElement);
|
||||||
|
|
||||||
|
// 模拟点击<a>元素来触发下载操作
|
||||||
|
linkElement.click();
|
||||||
|
|
||||||
|
// 从DOM树中移除<a>元素
|
||||||
|
document.body.removeChild(linkElement);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
@ -0,0 +1,298 @@
|
|||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
|
||||||
|
<meta http-equiv="x-ua-compatible" content="ie=edge"/>
|
||||||
|
<title>学生信息查看</title>
|
||||||
|
<script src="${pageContext.request.contextPath}/resources/js/jquery-3.7.0.min.js"></script>
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"/>
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700;900&display=swap"
|
||||||
|
rel="stylesheet">
|
||||||
|
<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/mdb.min.css"/>
|
||||||
|
<style>
|
||||||
|
.table-container {
|
||||||
|
min-width: 60vw; /* 设置最小宽度为视窗宽度的80% */
|
||||||
|
min-height: 80vh; /* 设置最小高度为视窗高度的80% */
|
||||||
|
/*display: flex;*/
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-container table {
|
||||||
|
width: 100%;
|
||||||
|
/*height: 100%;*/
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body style="font-family: 'Noto Sans SC Regular',serif">
|
||||||
|
<!--Main Navigation-->
|
||||||
|
<header>
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-light bg-light" style="z-index: 1;min-height: 58.59px">
|
||||||
|
<div class="container">
|
||||||
|
<button class="navbar-toggler" type="button" data-mdb-toggle="collapse"
|
||||||
|
data-mdb-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
|
||||||
|
aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<i class="fas fa-bars"></i>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||||
|
<a class="navbar-brand mt-2 mt-lg-0" href="#">
|
||||||
|
<i class="fas fa-chalkboard-user me-2"></i>
|
||||||
|
教务管理系统
|
||||||
|
</a>
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link active" aria-current="page" href="/dashboard">首页</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown1" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
学生管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown1">
|
||||||
|
<li><a class="dropdown-item" href="/student/all">学生信息显示</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/student/queryinfo">学生信息查询</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/student/modstep1">学生信息修改(旧)</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/student/infomodv2">学生信息修改</a></li>
|
||||||
|
<li>
|
||||||
|
<hr class="dropdown-divider" />
|
||||||
|
</li>
|
||||||
|
<li><a class="dropdown-item" href="/score/all">成绩查看</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/score/infomodv2">成绩管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown2" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
教师管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown2">
|
||||||
|
<li><a class="dropdown-item" href="/teacher/manage">教师信息管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown3" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
课程管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown3">
|
||||||
|
<li><a class="dropdown-item" href="/course/all">课程查看</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/course/infomodv2">课程管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown4" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
系统管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown4">
|
||||||
|
<li><a class="dropdown-item" href="/person/settings">个人设定</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/system/settings">系统设定</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/user/usermanage">用户管理</a></li>
|
||||||
|
<%-- <li><a class="dropdown-item" href="#">日志管理</a></li>--%>
|
||||||
|
<li><a class="dropdown-item" href="#">版本信息</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="dropdown">
|
||||||
|
<a class="dropdown-toggle d-flex align-items-center hidden-arrow" href="#"
|
||||||
|
id="navbarDropdownMenuAvatar" role="button" data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
<i class="fas fa-circle-user fa-lg me-1"></i>
|
||||||
|
${username}
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdownMenuAvatar">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="${pageContext.request.contextPath}/logout">登出</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<!--Main Navigation-->
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
<main>
|
||||||
|
<div class="bg-image shadow-2-strong vh-100"
|
||||||
|
style="background-image: url('${pageContext.request.contextPath}/resources/img/jason-blackeye-nyL-rzwP-Mk-unsplash.jpg'); margin-top: -58.59px;">
|
||||||
|
<div class="mask d-flex align-items-center h-100" style="background-color: hsla(0, 0%, 100%, 0.5);">
|
||||||
|
<div class="container d-flex justify-content-center">
|
||||||
|
<button type="button" class="btn btn-primary" onclick="location.href='../dashboard'">返回</button>
|
||||||
|
<div class="table-container rounded-4 shadow-3-strong"
|
||||||
|
style="background-color: rgba(255,255,255,0.9); overflow-y: auto; max-height: 400px">
|
||||||
|
<table class="table table-striped table-hover border-primary">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th scope="col">ID</th>
|
||||||
|
<th scope="col">姓名</th>
|
||||||
|
<th scope="col">性别</th>
|
||||||
|
<th scope="col">出生日期</th>
|
||||||
|
<th scope="col">联系方式</th>
|
||||||
|
<th scope="col">班级</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:forEach var="student" items="${students}">
|
||||||
|
<tr>
|
||||||
|
<td>${student.id}</td>
|
||||||
|
<td>${student.name}</td>
|
||||||
|
<td>${student.sex}</td>
|
||||||
|
<td>${student.birthday}</td>
|
||||||
|
<td>${student.phone}</td>
|
||||||
|
<td>${student.classes}</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="container" style="min-width: 190px">
|
||||||
|
<div class="card rounded-4 shadow-3-strong" style="min-width: 180px">
|
||||||
|
<h5 class="card-header">信息修改</h5>
|
||||||
|
<div class="card-body" style="min-width: 175px">
|
||||||
|
<form action="modinfo" method="post">
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="form-outline">
|
||||||
|
<input type="number" id="typeText1" class="form-control" required
|
||||||
|
name="id"/>
|
||||||
|
<label class="form-label" for="typeText1">ID (必填)</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="form-outline">
|
||||||
|
<input type="text" id="typeText2" class="form-control"
|
||||||
|
name="name"/>
|
||||||
|
<label class="form-label" for="typeText2">姓名</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="form-outline">
|
||||||
|
<input type="text" id="typeText3" class="form-control" name="sex"/>
|
||||||
|
<label class="form-label" for="typeText3">性别 (男/女)</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="form-outline">
|
||||||
|
<input type="date" id="typeText4" class="form-control"
|
||||||
|
name="birthday"/>
|
||||||
|
<label class="form-label" for="typeText4">出生日期</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="form-outline">
|
||||||
|
<input type="text" id="typeText5" class="form-control"
|
||||||
|
name="phone"/>
|
||||||
|
<label class="form-label" for="typeText5">联系方式</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="form-outline">
|
||||||
|
<input type="text" id="typeText6" class="form-control"
|
||||||
|
name="classes"/>
|
||||||
|
<label class="form-label" for="typeText6">班级</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<button type="submit" class="btn btn-primary" data-mdb-toggle="tooltip"
|
||||||
|
data-mdb-placement="top" title="留空为不做修改">更改
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<button type="reset" class="btn btn-secondary">重置</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Modal -->
|
||||||
|
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="exampleModalLabel">
|
||||||
|
<i class="fas fa-circle-exclamation me-2"></i>错误
|
||||||
|
</h5>
|
||||||
|
<button type="button" class="btn-close" data-mdb-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<c:if test="${not empty errorMessage}">
|
||||||
|
${errorMessage}
|
||||||
|
</c:if>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-primary" data-mdb-dismiss="modal">OK</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Modal -->
|
||||||
|
<div class="modal fade" id="exampleModal2" tabindex="-1" aria-labelledby="exampleModalLabel2" aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="exampleModalLabel2">
|
||||||
|
<i class="fas fa-circle-check me-2"></i>成功
|
||||||
|
</h5>
|
||||||
|
<button type="button" class="btn-close" data-mdb-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<c:if test="${not empty successMessage}">
|
||||||
|
${successMessage}
|
||||||
|
</c:if>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-primary" data-mdb-dismiss="modal">OK</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<footer class="bg-link text-center text-lg-start ">
|
||||||
|
</footer>
|
||||||
|
<!-- Footer -->
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/mdb.min.js"></script>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function () {
|
||||||
|
<%-- 判断模型中是否存在错误信息 --%>
|
||||||
|
<c:if test="${not empty errorMessage && errorMessage ne 'null'}">
|
||||||
|
$('#exampleModal').modal('show');
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${not empty successMessage && successMessage ne 'null'}">
|
||||||
|
$('#exampleModal2').modal('show');
|
||||||
|
</c:if>
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
@ -0,0 +1,177 @@
|
|||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
|
||||||
|
<meta http-equiv="x-ua-compatible" content="ie=edge"/>
|
||||||
|
<title>学生信息查询结果页</title>
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"/>
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700;900&display=swap"
|
||||||
|
rel="stylesheet">
|
||||||
|
<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/mdb.min.css"/>
|
||||||
|
<style>
|
||||||
|
.table-container {
|
||||||
|
min-width: 80vw; /* 设置最小宽度为视窗宽度的80% */
|
||||||
|
min-height: 80vh; /* 设置最小高度为视窗高度的80% */
|
||||||
|
/*display: flex;*/
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-container table {
|
||||||
|
width: 100%;
|
||||||
|
/*height: 100%;*/
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body style="font-family: 'Noto Sans SC Regular',serif">
|
||||||
|
<!--Main Navigation-->
|
||||||
|
<header>
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-light bg-light" style="z-index: 1;min-height: 58.59px">
|
||||||
|
<div class="container">
|
||||||
|
<button class="navbar-toggler" type="button" data-mdb-toggle="collapse"
|
||||||
|
data-mdb-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
|
||||||
|
aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<i class="fas fa-bars"></i>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||||
|
<a class="navbar-brand mt-2 mt-lg-0" href="#">
|
||||||
|
<i class="fas fa-chalkboard-user me-2"></i>
|
||||||
|
教务管理系统
|
||||||
|
</a>
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link active" aria-current="page" href="/dashboard">首页</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown1" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
学生管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown1">
|
||||||
|
<li><a class="dropdown-item" href="/student/all">学生信息显示</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/student/queryinfo">学生信息查询</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/student/modstep1">学生信息修改(旧)</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/student/infomodv2">学生信息修改</a></li>
|
||||||
|
<li>
|
||||||
|
<hr class="dropdown-divider" />
|
||||||
|
</li>
|
||||||
|
<li><a class="dropdown-item" href="/score/all">成绩查看</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/score/infomodv2">成绩管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown2" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
教师管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown2">
|
||||||
|
<li><a class="dropdown-item" href="/teacher/manage">教师信息管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown3" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
课程管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown3">
|
||||||
|
<li><a class="dropdown-item" href="/course/all">课程查看</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/course/infomodv2">课程管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown4" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
系统管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown4">
|
||||||
|
<li><a class="dropdown-item" href="/person/settings">个人设定</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/system/settings">系统设定</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/user/usermanage">用户管理</a></li>
|
||||||
|
<%-- <li><a class="dropdown-item" href="#">日志管理</a></li>--%>
|
||||||
|
<li><a class="dropdown-item" href="#">版本信息</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="dropdown">
|
||||||
|
<a class="dropdown-toggle d-flex align-items-center hidden-arrow" href="#"
|
||||||
|
id="navbarDropdownMenuAvatar" role="button" data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
<i class="fas fa-circle-user fa-lg me-1"></i>
|
||||||
|
${username}
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdownMenuAvatar">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="${pageContext.request.contextPath}/logout">登出</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<!--Main Navigation-->
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
<main>
|
||||||
|
<div class="bg-image shadow-2-strong vh-100"
|
||||||
|
style="background-image: url('${pageContext.request.contextPath}/resources/img/jason-blackeye-nyL-rzwP-Mk-unsplash.jpg'); margin-top: -58.59px;">
|
||||||
|
<div class="mask d-flex align-items-center h-100" style="background-color: hsla(0, 0%, 100%, 0.5);">
|
||||||
|
<div class="container d-flex justify-content-center">
|
||||||
|
<button type="button" class="btn btn-primary" onclick="function goBack() {
|
||||||
|
window.history.back(); //返回上一页
|
||||||
|
}
|
||||||
|
goBack()">返回
|
||||||
|
</button>
|
||||||
|
<div class="table-container rounded-4 shadow-3-strong"
|
||||||
|
style="background-color: rgba(255,255,255,0.9); overflow-y: auto; max-height: 400px;">
|
||||||
|
<table class="table table-striped table-hover border-primary">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th scope="col">ID</th>
|
||||||
|
<th scope="col">姓名</th>
|
||||||
|
<th scope="col">性别</th>
|
||||||
|
<th scope="col">出生日期</th>
|
||||||
|
<th scope="col">联系方式</th>
|
||||||
|
<th scope="col">班级</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:forEach var="student" items="${students}">
|
||||||
|
<tr>
|
||||||
|
<td>${student.id}</td>
|
||||||
|
<td>${student.name}</td>
|
||||||
|
<td>${student.sex}</td>
|
||||||
|
<td>${student.birthday}</td>
|
||||||
|
<td>${student.phone}</td>
|
||||||
|
<td>${student.classes}</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<footer class="bg-link text-center text-lg-start ">
|
||||||
|
</footer>
|
||||||
|
<!-- Footer -->
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/mdb.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
@ -23,29 +23,26 @@ public class CourseController {
|
|||||||
this.courseService = courseService;
|
this.courseService = courseService;
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/all")//课程信息查询(不带条件)
|
@GetMapping("/all")
|
||||||
public String getAllCourses(Model model) {
|
public String getAllCourses(Model model) {
|
||||||
String username = new UsernameHelper().getCurrentUsername();
|
String username = new UsernameHelper().getCurrentUsername();
|
||||||
|
String role = new UsernameHelper().getCurrentRole();
|
||||||
if (username != null) {
|
if (username != null) {
|
||||||
model.addAttribute("username", username);
|
model.addAttribute("username", username);
|
||||||
}
|
}
|
||||||
List<Course> courses = courseService.getAllCourses();
|
List<Course> courses = courseService.getAllCourses();
|
||||||
model.addAttribute("courses", courses);
|
model.addAttribute("courses", courses);
|
||||||
return "courseList"; // 重定向到 dashboard 页面
|
if (role.equals("[ROLE_admin]"))
|
||||||
}
|
return "course/courseList";
|
||||||
|
else if (role.equals("[ROLE_teacher]")) {
|
||||||
@GetMapping("/all_t")//课程信息查询(不带条件)
|
return "course/courseList_t";
|
||||||
public String getAllCoursesT(Model model) {
|
} else {
|
||||||
String username = new UsernameHelper().getCurrentUsername();
|
return "course/courseList_s";
|
||||||
if (username != null) {
|
|
||||||
model.addAttribute("username", username);
|
|
||||||
}
|
}
|
||||||
List<Course> courses = courseService.getAllCourses();
|
|
||||||
model.addAttribute("courses", courses);
|
|
||||||
return "courseList_t"; // 重定向到 dashboard 页面
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/infomodv2")//处理学生信息修改页
|
@GetMapping("/infomodv2")
|
||||||
public String getInfoModv2(@RequestParam(value = "successMessage", required = false, defaultValue = "null") String successMessage,
|
public String getInfoModv2(@RequestParam(value = "successMessage", required = false, defaultValue = "null") String successMessage,
|
||||||
@RequestParam(value = "errorMessage", required = false, defaultValue = "null") String errorMessage,
|
@RequestParam(value = "errorMessage", required = false, defaultValue = "null") String errorMessage,
|
||||||
Model model) {
|
Model model) {
|
||||||
@ -55,16 +52,21 @@ public class CourseController {
|
|||||||
}
|
}
|
||||||
List<Course> courses = courseService.getAllCourses();
|
List<Course> courses = courseService.getAllCourses();
|
||||||
model.addAttribute("courses", courses);
|
model.addAttribute("courses", courses);
|
||||||
// 将消息添加到Model中
|
|
||||||
model.addAttribute("successMessage", successMessage);
|
model.addAttribute("successMessage", successMessage);
|
||||||
model.addAttribute("errorMessage", errorMessage);
|
model.addAttribute("errorMessage", errorMessage);
|
||||||
|
String role = new UsernameHelper().getCurrentRole();
|
||||||
return "courseopv2";
|
if (role.equals("[ROLE_admin]"))
|
||||||
|
return "course/courseopv2";
|
||||||
|
else if (role.equals("[ROLE_teacher]")) {
|
||||||
|
return "course/courseopv2_t";
|
||||||
|
} else {
|
||||||
|
return "course/courseopv2_s";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping(value = "/delinfo", produces = "application/x-www-form-urlencoded;charset=UTF-8")
|
@PostMapping(value = "/delinfo", produces = "application/x-www-form-urlencoded;charset=UTF-8")
|
||||||
public String DeleteCourseInfo(@RequestParam(value = "id") int id,
|
public String DeleteCourseInfo(@RequestParam(value = "id") int id,
|
||||||
Model model) {
|
Model model) {
|
||||||
Course temp = courseService.getCourseById(id);
|
Course temp = courseService.getCourseById(id);
|
||||||
if (id <= 0 || temp == null) {
|
if (id <= 0 || temp == null) {
|
||||||
model.addAttribute("errorMessage", "学生信息删除失败,可能是ID非法或者学生已删除");
|
model.addAttribute("errorMessage", "学生信息删除失败,可能是ID非法或者学生已删除");
|
||||||
@ -82,7 +84,7 @@ public class CourseController {
|
|||||||
return "redirect:/course/infomodv2";
|
return "redirect:/course/infomodv2";
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
@PostMapping(value = "/addinfo", produces = "application/x-www-form-urlencoded;charset=UTF-8")
|
@PostMapping(value = "/addinfo", produces = "application/x-www-form-urlencoded;charset=UTF-8")
|
||||||
public String InsertCourseInfo(@RequestParam(value = "name", defaultValue = "null", required = false) String name,
|
public String InsertCourseInfo(@RequestParam(value = "name", defaultValue = "null", required = false) String name,
|
||||||
@RequestParam(value = "description", defaultValue = "null", required = false) String description,
|
@RequestParam(value = "description", defaultValue = "null", required = false) String description,
|
||||||
@ -94,7 +96,7 @@ public class CourseController {
|
|||||||
return "redirect:/course/infomodv2";
|
return "redirect:/course/infomodv2";
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
@PostMapping(value = "/modinfo", produces = "application/x-www-form-urlencoded;charset=UTF-8")
|
@PostMapping(value = "/modinfo", produces = "application/x-www-form-urlencoded;charset=UTF-8")
|
||||||
public String UpdateModInfo(@RequestParam(value = "name", defaultValue = "null", required = false) String name,
|
public String UpdateModInfo(@RequestParam(value = "name", defaultValue = "null", required = false) String name,
|
||||||
@RequestParam(value = "description", defaultValue = "null", required = false) String description,
|
@RequestParam(value = "description", defaultValue = "null", required = false) String description,
|
||||||
@ -121,7 +123,7 @@ public class CourseController {
|
|||||||
return "redirect:/course/infomodv2";
|
return "redirect:/course/infomodv2";
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping(value = "/query", produces = "application/x-www-form-urlencoded;charset=UTF-8")//学生信息查询(带条件)
|
@PostMapping(value = "/query", produces = "application/x-www-form-urlencoded;charset=UTF-8")
|
||||||
public String getQueryCourses(@RequestParam(value = "name", defaultValue = "null", required = false) String name,
|
public String getQueryCourses(@RequestParam(value = "name", defaultValue = "null", required = false) String name,
|
||||||
@RequestParam(value = "description", defaultValue = "null", required = false) String description,
|
@RequestParam(value = "description", defaultValue = "null", required = false) String description,
|
||||||
@RequestParam(value = "id", defaultValue = "-1", required = false) int id,
|
@RequestParam(value = "id", defaultValue = "-1", required = false) int id,
|
||||||
@ -139,9 +141,15 @@ public class CourseController {
|
|||||||
List<Course> courses;
|
List<Course> courses;
|
||||||
Course course;
|
Course course;
|
||||||
course = new Course((id == -1 ? null : id), name, description);
|
course = new Course((id == -1 ? null : id), name, description);
|
||||||
// System.out.println("id:" + id + " name:" + name + " description:" + description);
|
|
||||||
courses = courseService.getQueryCourses(course);
|
courses = courseService.getQueryCourses(course);
|
||||||
model.addAttribute("courses", courses);
|
model.addAttribute("courses", courses);
|
||||||
return "courseQueryResult";
|
String role = new UsernameHelper().getCurrentRole();
|
||||||
|
if (role.equals("[ROLE_admin]"))
|
||||||
|
return "course/courseQueryResult";
|
||||||
|
else if (role.equals("[ROLE_teacher]")) {
|
||||||
|
return "course/courseQueryResult_t";
|
||||||
|
} else {
|
||||||
|
return "course/courseQueryResult_s";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,6 @@ package cyou.chenx221.controller;
|
|||||||
|
|
||||||
import cyou.chenx221.helper.UsernameHelper;
|
import cyou.chenx221.helper.UsernameHelper;
|
||||||
import cyou.chenx221.mapper.UserMapper;
|
import cyou.chenx221.mapper.UserMapper;
|
||||||
import cyou.chenx221.pojo.Course;
|
|
||||||
import cyou.chenx221.pojo.User;
|
import cyou.chenx221.pojo.User;
|
||||||
import cyou.chenx221.service.PersonService;
|
import cyou.chenx221.service.PersonService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@ -15,7 +14,6 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@Controller
|
@Controller
|
||||||
@ -30,33 +28,34 @@ public class PersonController {
|
|||||||
this.personService = personService;
|
this.personService = personService;
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/settings")//课程信息查询(不带条件)
|
@GetMapping("/settings")
|
||||||
public String getPersonSettings(Model model) {
|
public String getPersonSettings(Model model) {
|
||||||
String username = new UsernameHelper().getCurrentUsername();
|
String username = new UsernameHelper().getCurrentUsername();
|
||||||
if (username != null) {
|
if (username != null) {
|
||||||
model.addAttribute("username", username);
|
model.addAttribute("username", username);
|
||||||
}
|
}
|
||||||
return "person"; // 重定向到 dashboard 页面
|
String role = new UsernameHelper().getCurrentRole();
|
||||||
|
if (role.equals("[ROLE_admin]"))
|
||||||
|
return "person/person";
|
||||||
|
else if (role.equals("[ROLE_teacher]")) {
|
||||||
|
return "person/person_t";
|
||||||
|
} else {
|
||||||
|
return "person/person_s";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@PostMapping("/uploadAvatar")
|
@PostMapping("/uploadAvatar")
|
||||||
public ResponseEntity<Map<String, String>> uploadAvatar(@RequestParam("avatar") MultipartFile file) {
|
public ResponseEntity<Map<String, String>> uploadAvatar(@RequestParam("avatar") MultipartFile file) {
|
||||||
Map<String, String> response = new HashMap<>();
|
Map<String, String> response = new HashMap<>();
|
||||||
|
//TODO: 清理没有关联的图像资源
|
||||||
// 处理上传的头像图片文件 //TODO: 清理没有关联的图像资源
|
|
||||||
if (!file.isEmpty()) {
|
if (!file.isEmpty()) {
|
||||||
try {
|
try {
|
||||||
// String avatarUrl = personService.uploadAvatar(file);
|
|
||||||
String object = personService.uploadAvatar(file);
|
String object = personService.uploadAvatar(file);
|
||||||
User user = new User();
|
User user = new User();
|
||||||
user.setUsername(new UsernameHelper().getCurrentUsername());
|
user.setUsername(new UsernameHelper().getCurrentUsername());
|
||||||
user.setAvatar(object);
|
user.setAvatar(object);
|
||||||
userMapper.setAvatar(user);
|
userMapper.setAvatar(user);
|
||||||
// 设置返回的avatarUrl值
|
|
||||||
// response.put("avatarUrl", "/person/image");
|
|
||||||
// response.put("avatarUrl", avatarUrl);
|
|
||||||
// 返回成功消息和avatarUrl
|
|
||||||
return ResponseEntity.ok(response);
|
return ResponseEntity.ok(response);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
String errorMessage = "Error uploading file: " + e.getMessage();
|
String errorMessage = "Error uploading file: " + e.getMessage();
|
||||||
@ -77,7 +76,6 @@ public class PersonController {
|
|||||||
InputStreamResource imageResource = personService.getImage(objectName);
|
InputStreamResource imageResource = personService.getImage(objectName);
|
||||||
return ResponseEntity.ok().body(imageResource);
|
return ResponseEntity.ok().body(imageResource);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
// Handle exception and return appropriate response
|
|
||||||
return ResponseEntity.notFound().build();
|
return ResponseEntity.notFound().build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -90,7 +90,6 @@ public class StudentController {
|
|||||||
if (!"null".equals(birthdayStr)) {
|
if (!"null".equals(birthdayStr)) {
|
||||||
birthday = Date.valueOf(birthdayStr);
|
birthday = Date.valueOf(birthdayStr);
|
||||||
}
|
}
|
||||||
// System.out.println(birthday);//debug
|
|
||||||
List<Student> students;
|
List<Student> students;
|
||||||
Student student;
|
Student student;
|
||||||
if (classes.size() == 0) {
|
if (classes.size() == 0) {
|
||||||
|
@ -18,4 +18,12 @@ public class UsernameHelper {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getCurrentRole(){
|
||||||
|
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
|
||||||
|
if (authentication != null && authentication.getPrincipal() instanceof UserDetails) {
|
||||||
|
UserDetails userDetails = (UserDetails) authentication.getPrincipal();
|
||||||
|
return userDetails.getAuthorities().toString(); //[ROLE_admin],[ROLE_teacher],[ROLE_student]
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
196
project2/web/WEB-INF/views/course/courseList_t.jsp
Normal file
196
project2/web/WEB-INF/views/course/courseList_t.jsp
Normal file
@ -0,0 +1,196 @@
|
|||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
|
||||||
|
<meta http-equiv="x-ua-compatible" content="ie=edge"/>
|
||||||
|
<title>课程信息查看</title>
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"/>
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700;900&display=swap"
|
||||||
|
rel="stylesheet">
|
||||||
|
<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/mdb.min.css"/>
|
||||||
|
<style>
|
||||||
|
.table-container {
|
||||||
|
min-width: 80vw; /* 设置最小宽度为视窗宽度的80% */
|
||||||
|
min-height: 80vh; /* 设置最小高度为视窗高度的80% */
|
||||||
|
/*display: flex;*/
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-container table {
|
||||||
|
width: 100%;
|
||||||
|
/*height: 100%;*/
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body style="font-family: 'Noto Sans SC Regular',serif">
|
||||||
|
<!--Main Navigation-->
|
||||||
|
<header>
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-light bg-light" style="z-index: 1;min-height: 58.59px">
|
||||||
|
<div class="container">
|
||||||
|
<button class="navbar-toggler" type="button" data-mdb-toggle="collapse"
|
||||||
|
data-mdb-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
|
||||||
|
aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<i class="fas fa-bars"></i>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||||
|
<a class="navbar-brand mt-2 mt-lg-0" href="#">
|
||||||
|
<i class="fas fa-chalkboard-user me-2"></i>
|
||||||
|
教务管理系统
|
||||||
|
</a>
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link active" aria-current="page" href="#">首页</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown1" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
学生管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown1">
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息查询</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息管理</a></li>
|
||||||
|
<li>
|
||||||
|
<hr class="dropdown-divider"/>
|
||||||
|
</li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li>
|
||||||
|
<hr class="dropdown-divider"/>
|
||||||
|
</li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown2" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
教师管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown2">
|
||||||
|
<li><a class="dropdown-item" href="#">教师信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">教师课程管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown3" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
课程管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown3">
|
||||||
|
<li><a class="dropdown-item" href="#">课程信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">课程安排管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown4" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
系统管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown4">
|
||||||
|
<li><a class="dropdown-item" href="#">个人设定</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">用户管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">日志管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">版本信息</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="dropdown">
|
||||||
|
<a class="dropdown-toggle d-flex align-items-center hidden-arrow" href="#"
|
||||||
|
id="navbarDropdownMenuAvatar" role="button" data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
<i class="fas fa-circle-user fa-lg me-1"></i>
|
||||||
|
${username}
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdownMenuAvatar">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="${pageContext.request.contextPath}/logout">登出</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<!--Main Navigation-->
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
<main>
|
||||||
|
<div class="bg-image shadow-2-strong vh-100"
|
||||||
|
style="background-image: url('${pageContext.request.contextPath}/resources/img/jason-blackeye-nyL-rzwP-Mk-unsplash.jpg'); margin-top: -58.59px;">
|
||||||
|
<div class="mask d-flex align-items-center h-100" style="background-color: hsla(0, 0%, 100%, 0.5);">
|
||||||
|
<div class="container d-flex justify-content-center">
|
||||||
|
<div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<button type="button" class="btn btn-primary" onclick="location.href='../dashboard-t'">返回
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<button type="button" class="btn btn-primary" onclick="exportCSV()">导出</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="table-container rounded-4 shadow-3-strong"
|
||||||
|
style="background-color: rgba(255,255,255,0.9); overflow-y: auto; max-height: 400px;">
|
||||||
|
<table class="table table-striped table-hover border-primary">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th scope="col">课程ID</th>
|
||||||
|
<th scope="col">课程名</th>
|
||||||
|
<th scope="col">课程描述</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:forEach var="course" items="${courses}">
|
||||||
|
<tr>
|
||||||
|
<td>${course.courseID}</td>
|
||||||
|
<td>${course.courseName}</td>
|
||||||
|
<td>${course.description}</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<footer class="bg-link text-center text-lg-start ">
|
||||||
|
</footer>
|
||||||
|
<!-- Footer -->
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/mdb.min.js"></script>
|
||||||
|
<script>
|
||||||
|
function exportCSV() {
|
||||||
|
// 构造请求 URL,根据需要导出的类型传递参数
|
||||||
|
var exportUrl = '/output/export-csv?type=course'; // 示例:导出学生数据
|
||||||
|
var link = document.createElement('a');
|
||||||
|
link.href = exportUrl;
|
||||||
|
link.style.display = 'none';
|
||||||
|
document.body.appendChild(link);
|
||||||
|
link.click();
|
||||||
|
document.body.removeChild(link);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
173
project2/web/WEB-INF/views/course/courseQueryResult.jsp
Normal file
173
project2/web/WEB-INF/views/course/courseQueryResult.jsp
Normal file
@ -0,0 +1,173 @@
|
|||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
|
||||||
|
<meta http-equiv="x-ua-compatible" content="ie=edge"/>
|
||||||
|
<title>课程信息查询结果页</title>
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"/>
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700;900&display=swap"
|
||||||
|
rel="stylesheet">
|
||||||
|
<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/mdb.min.css"/>
|
||||||
|
<style>
|
||||||
|
.table-container {
|
||||||
|
min-width: 80vw; /* 设置最小宽度为视窗宽度的80% */
|
||||||
|
min-height: 80vh; /* 设置最小高度为视窗高度的80% */
|
||||||
|
/*display: flex;*/
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-container table {
|
||||||
|
width: 100%;
|
||||||
|
/*height: 100%;*/
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body style="font-family: 'Noto Sans SC Regular',serif">
|
||||||
|
<!--Main Navigation-->
|
||||||
|
<header>
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-light bg-light" style="z-index: 1;min-height: 58.59px">
|
||||||
|
<div class="container">
|
||||||
|
<button class="navbar-toggler" type="button" data-mdb-toggle="collapse"
|
||||||
|
data-mdb-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
|
||||||
|
aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<i class="fas fa-bars"></i>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||||
|
<a class="navbar-brand mt-2 mt-lg-0" href="#">
|
||||||
|
<i class="fas fa-chalkboard-user me-2"></i>
|
||||||
|
教务管理系统
|
||||||
|
</a>
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link active" aria-current="page" href="#">首页</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown1" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
学生管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown1">
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息查询</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息管理</a></li>
|
||||||
|
<li>
|
||||||
|
<hr class="dropdown-divider"/>
|
||||||
|
</li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li>
|
||||||
|
<hr class="dropdown-divider"/>
|
||||||
|
</li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown2" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
教师管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown2">
|
||||||
|
<li><a class="dropdown-item" href="#">教师信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">教师课程管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown3" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
课程管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown3">
|
||||||
|
<li><a class="dropdown-item" href="#">课程信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">课程安排管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown4" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
系统管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown4">
|
||||||
|
<li><a class="dropdown-item" href="#">个人设定</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">用户管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">日志管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">版本信息</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="dropdown">
|
||||||
|
<a class="dropdown-toggle d-flex align-items-center hidden-arrow" href="#"
|
||||||
|
id="navbarDropdownMenuAvatar" role="button" data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
<i class="fas fa-circle-user fa-lg me-1"></i>
|
||||||
|
${username}
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdownMenuAvatar">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="${pageContext.request.contextPath}/logout">登出</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<!--Main Navigation-->
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
<main>
|
||||||
|
<div class="bg-image shadow-2-strong vh-100"
|
||||||
|
style="background-image: url('${pageContext.request.contextPath}/resources/img/jason-blackeye-nyL-rzwP-Mk-unsplash.jpg'); margin-top: -58.59px;">
|
||||||
|
<div class="mask d-flex align-items-center h-100" style="background-color: hsla(0, 0%, 100%, 0.5);">
|
||||||
|
<div class="container d-flex justify-content-center">
|
||||||
|
<button type="button" class="btn btn-primary" onclick="location.href='../dashboard'">返回</button>
|
||||||
|
<div class="table-container rounded-4 shadow-3-strong"
|
||||||
|
style="background-color: rgba(255,255,255,0.9); overflow-y: auto; max-height: 400px;">
|
||||||
|
<table class="table table-striped table-hover border-primary">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th scope="col">课程ID</th>
|
||||||
|
<th scope="col">课程名</th>
|
||||||
|
<th scope="col">课程描述</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:forEach var="course" items="${courses}">
|
||||||
|
<tr>
|
||||||
|
<td>${course.courseID}</td>
|
||||||
|
<td>${course.courseName}</td>
|
||||||
|
<td>${course.description}</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<footer class="bg-link text-center text-lg-start ">
|
||||||
|
</footer>
|
||||||
|
<!-- Footer -->
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/mdb.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
173
project2/web/WEB-INF/views/course/courseQueryResult_s.jsp
Normal file
173
project2/web/WEB-INF/views/course/courseQueryResult_s.jsp
Normal file
@ -0,0 +1,173 @@
|
|||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
|
||||||
|
<meta http-equiv="x-ua-compatible" content="ie=edge"/>
|
||||||
|
<title>课程信息查询结果页</title>
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"/>
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700;900&display=swap"
|
||||||
|
rel="stylesheet">
|
||||||
|
<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/mdb.min.css"/>
|
||||||
|
<style>
|
||||||
|
.table-container {
|
||||||
|
min-width: 80vw; /* 设置最小宽度为视窗宽度的80% */
|
||||||
|
min-height: 80vh; /* 设置最小高度为视窗高度的80% */
|
||||||
|
/*display: flex;*/
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-container table {
|
||||||
|
width: 100%;
|
||||||
|
/*height: 100%;*/
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body style="font-family: 'Noto Sans SC Regular',serif">
|
||||||
|
<!--Main Navigation-->
|
||||||
|
<header>
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-light bg-light" style="z-index: 1;min-height: 58.59px">
|
||||||
|
<div class="container">
|
||||||
|
<button class="navbar-toggler" type="button" data-mdb-toggle="collapse"
|
||||||
|
data-mdb-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
|
||||||
|
aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<i class="fas fa-bars"></i>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||||
|
<a class="navbar-brand mt-2 mt-lg-0" href="#">
|
||||||
|
<i class="fas fa-chalkboard-user me-2"></i>
|
||||||
|
教务管理系统
|
||||||
|
</a>
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link active" aria-current="page" href="#">首页</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown1" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
学生管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown1">
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息查询</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息管理</a></li>
|
||||||
|
<li>
|
||||||
|
<hr class="dropdown-divider"/>
|
||||||
|
</li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li>
|
||||||
|
<hr class="dropdown-divider"/>
|
||||||
|
</li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown2" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
教师管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown2">
|
||||||
|
<li><a class="dropdown-item" href="#">教师信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">教师课程管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown3" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
课程管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown3">
|
||||||
|
<li><a class="dropdown-item" href="#">课程信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">课程安排管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown4" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
系统管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown4">
|
||||||
|
<li><a class="dropdown-item" href="#">个人设定</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">用户管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">日志管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">版本信息</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="dropdown">
|
||||||
|
<a class="dropdown-toggle d-flex align-items-center hidden-arrow" href="#"
|
||||||
|
id="navbarDropdownMenuAvatar" role="button" data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
<i class="fas fa-circle-user fa-lg me-1"></i>
|
||||||
|
${username}
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdownMenuAvatar">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="${pageContext.request.contextPath}/logout">登出</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<!--Main Navigation-->
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
<main>
|
||||||
|
<div class="bg-image shadow-2-strong vh-100"
|
||||||
|
style="background-image: url('${pageContext.request.contextPath}/resources/img/jason-blackeye-nyL-rzwP-Mk-unsplash.jpg'); margin-top: -58.59px;">
|
||||||
|
<div class="mask d-flex align-items-center h-100" style="background-color: hsla(0, 0%, 100%, 0.5);">
|
||||||
|
<div class="container d-flex justify-content-center">
|
||||||
|
<button type="button" class="btn btn-primary" onclick="location.href='../dashboard'">返回</button>
|
||||||
|
<div class="table-container rounded-4 shadow-3-strong"
|
||||||
|
style="background-color: rgba(255,255,255,0.9); overflow-y: auto; max-height: 400px;">
|
||||||
|
<table class="table table-striped table-hover border-primary">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th scope="col">课程ID</th>
|
||||||
|
<th scope="col">课程名</th>
|
||||||
|
<th scope="col">课程描述</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:forEach var="course" items="${courses}">
|
||||||
|
<tr>
|
||||||
|
<td>${course.courseID}</td>
|
||||||
|
<td>${course.courseName}</td>
|
||||||
|
<td>${course.description}</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<footer class="bg-link text-center text-lg-start ">
|
||||||
|
</footer>
|
||||||
|
<!-- Footer -->
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/mdb.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
173
project2/web/WEB-INF/views/course/courseQueryResult_t.jsp
Normal file
173
project2/web/WEB-INF/views/course/courseQueryResult_t.jsp
Normal file
@ -0,0 +1,173 @@
|
|||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
|
||||||
|
<meta http-equiv="x-ua-compatible" content="ie=edge"/>
|
||||||
|
<title>课程信息查询结果页</title>
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"/>
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700;900&display=swap"
|
||||||
|
rel="stylesheet">
|
||||||
|
<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/mdb.min.css"/>
|
||||||
|
<style>
|
||||||
|
.table-container {
|
||||||
|
min-width: 80vw; /* 设置最小宽度为视窗宽度的80% */
|
||||||
|
min-height: 80vh; /* 设置最小高度为视窗高度的80% */
|
||||||
|
/*display: flex;*/
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-container table {
|
||||||
|
width: 100%;
|
||||||
|
/*height: 100%;*/
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body style="font-family: 'Noto Sans SC Regular',serif">
|
||||||
|
<!--Main Navigation-->
|
||||||
|
<header>
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-light bg-light" style="z-index: 1;min-height: 58.59px">
|
||||||
|
<div class="container">
|
||||||
|
<button class="navbar-toggler" type="button" data-mdb-toggle="collapse"
|
||||||
|
data-mdb-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
|
||||||
|
aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<i class="fas fa-bars"></i>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||||
|
<a class="navbar-brand mt-2 mt-lg-0" href="#">
|
||||||
|
<i class="fas fa-chalkboard-user me-2"></i>
|
||||||
|
教务管理系统
|
||||||
|
</a>
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link active" aria-current="page" href="#">首页</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown1" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
学生管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown1">
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息查询</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息管理</a></li>
|
||||||
|
<li>
|
||||||
|
<hr class="dropdown-divider"/>
|
||||||
|
</li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li>
|
||||||
|
<hr class="dropdown-divider"/>
|
||||||
|
</li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown2" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
教师管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown2">
|
||||||
|
<li><a class="dropdown-item" href="#">教师信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">教师课程管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown3" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
课程管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown3">
|
||||||
|
<li><a class="dropdown-item" href="#">课程信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">课程安排管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown4" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
系统管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown4">
|
||||||
|
<li><a class="dropdown-item" href="#">个人设定</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">用户管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">日志管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">版本信息</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="dropdown">
|
||||||
|
<a class="dropdown-toggle d-flex align-items-center hidden-arrow" href="#"
|
||||||
|
id="navbarDropdownMenuAvatar" role="button" data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
<i class="fas fa-circle-user fa-lg me-1"></i>
|
||||||
|
${username}
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdownMenuAvatar">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="${pageContext.request.contextPath}/logout">登出</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<!--Main Navigation-->
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
<main>
|
||||||
|
<div class="bg-image shadow-2-strong vh-100"
|
||||||
|
style="background-image: url('${pageContext.request.contextPath}/resources/img/jason-blackeye-nyL-rzwP-Mk-unsplash.jpg'); margin-top: -58.59px;">
|
||||||
|
<div class="mask d-flex align-items-center h-100" style="background-color: hsla(0, 0%, 100%, 0.5);">
|
||||||
|
<div class="container d-flex justify-content-center">
|
||||||
|
<button type="button" class="btn btn-primary" onclick="location.href='../dashboard'">返回</button>
|
||||||
|
<div class="table-container rounded-4 shadow-3-strong"
|
||||||
|
style="background-color: rgba(255,255,255,0.9); overflow-y: auto; max-height: 400px;">
|
||||||
|
<table class="table table-striped table-hover border-primary">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th scope="col">课程ID</th>
|
||||||
|
<th scope="col">课程名</th>
|
||||||
|
<th scope="col">课程描述</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:forEach var="course" items="${courses}">
|
||||||
|
<tr>
|
||||||
|
<td>${course.courseID}</td>
|
||||||
|
<td>${course.courseName}</td>
|
||||||
|
<td>${course.description}</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<footer class="bg-link text-center text-lg-start ">
|
||||||
|
</footer>
|
||||||
|
<!-- Footer -->
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/mdb.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
406
project2/web/WEB-INF/views/course/courseopv2.jsp
Normal file
406
project2/web/WEB-INF/views/course/courseopv2.jsp
Normal file
@ -0,0 +1,406 @@
|
|||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
|
||||||
|
<meta http-equiv="x-ua-compatible" content="ie=edge"/>
|
||||||
|
<title>课程信息修改v2</title>
|
||||||
|
<script src="${pageContext.request.contextPath}/resources/js/jquery-3.7.0.min.js"></script>
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"/>
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700;900&display=swap"
|
||||||
|
rel="stylesheet">
|
||||||
|
<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/mdb.min.css"/>
|
||||||
|
<style>
|
||||||
|
.table-container {
|
||||||
|
min-width: 60vw;
|
||||||
|
/* 设置最小宽度为视窗宽度的80% */
|
||||||
|
min-height: 80vh;
|
||||||
|
/* 设置最小高度为视窗高度的80% */
|
||||||
|
/*display: flex;*/
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-container table {
|
||||||
|
width: 100%;
|
||||||
|
/*height: 100%;*/
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body style="font-family: 'Noto Sans SC Regular',serif">
|
||||||
|
<!--Main Navigation-->
|
||||||
|
<header>
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-light bg-light" style="z-index: 1;min-height: 58.59px">
|
||||||
|
<div class="container">
|
||||||
|
<button class="navbar-toggler" type="button" data-mdb-toggle="collapse"
|
||||||
|
data-mdb-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
|
||||||
|
aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<i class="fas fa-bars"></i>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||||
|
<a class="navbar-brand mt-2 mt-lg-0" href="#">
|
||||||
|
<i class="fas fa-chalkboard-user me-2"></i>
|
||||||
|
教务管理系统
|
||||||
|
</a>
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link active" aria-current="page" href="#">首页</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown1" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
学生管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown1">
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息查询</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息管理</a></li>
|
||||||
|
<li>
|
||||||
|
<hr class="dropdown-divider"/>
|
||||||
|
</li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li>
|
||||||
|
<hr class="dropdown-divider"/>
|
||||||
|
</li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown2" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
教师管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown2">
|
||||||
|
<li><a class="dropdown-item" href="#">教师信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">教师课程管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown3" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
课程管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown3">
|
||||||
|
<li><a class="dropdown-item" href="#">课程信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">课程安排管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown4" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
系统管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown4">
|
||||||
|
<li><a class="dropdown-item" href="#">个人设定</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">用户管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">日志管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">版本信息</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="dropdown">
|
||||||
|
<a class="dropdown-toggle d-flex align-items-center hidden-arrow" href="#"
|
||||||
|
id="navbarDropdownMenuAvatar" role="button" data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
<i class="fas fa-circle-user fa-lg me-1"></i>
|
||||||
|
${username}
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdownMenuAvatar">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="${pageContext.request.contextPath}/logout">登出</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<!--Main Navigation-->
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
<main>
|
||||||
|
<div class="bg-image shadow-2-strong vh-100"
|
||||||
|
style="background-image: url('${pageContext.request.contextPath}/resources/img/jason-blackeye-nyL-rzwP-Mk-unsplash.jpg'); margin-top: -58.59px;">
|
||||||
|
<div class="mask d-flex align-items-center h-100" style="background-color: hsla(0, 0%, 100%, 0.5);">
|
||||||
|
<div class="container d-flex justify-content-center">
|
||||||
|
<button type="button" class="btn btn-primary" onclick="location.href='../dashboard'">返回</button>
|
||||||
|
<div class="table-container rounded-4 shadow-3-strong"
|
||||||
|
style="background-color: rgba(255,255,255,0.9); overflow-y: auto; max-height: 400px">
|
||||||
|
<table class="table table-striped table-hover border-primary">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th scope="col">课程ID</th>
|
||||||
|
<th scope="col">课程名</th>
|
||||||
|
<th scope="col">课程描述</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:forEach var="course" items="${courses}">
|
||||||
|
<tr>
|
||||||
|
<td>${course.courseID}</td>
|
||||||
|
<td>${course.courseName}</td>
|
||||||
|
<td>${course.description}</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="container">
|
||||||
|
<div class="card rounded-4 shadow-3-strong" style="min-width: 244px">
|
||||||
|
<!-- Tabs navs -->
|
||||||
|
<ul class="nav nav-tabs" id="ex1" role="tablist">
|
||||||
|
<li class="nav-item" role="presentation">
|
||||||
|
<a class="nav-link active fs-6" id="ex1-tab-1" data-mdb-toggle="tab" href="#ex1-tabs-1"
|
||||||
|
role="tab" aria-controls="ex1-tabs-1" aria-selected="true">信息查询</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item" role="presentation">
|
||||||
|
<a class="nav-link fs-6" id="ex1-tab-2" data-mdb-toggle="tab" href="#ex1-tabs-2"
|
||||||
|
role="tab" aria-controls="ex1-tabs-2" aria-selected="true">信息修改</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item" role="presentation">
|
||||||
|
<a class="nav-link fs-6" id="ex1-tab-3" data-mdb-toggle="tab" href="#ex1-tabs-3"
|
||||||
|
role="tab" aria-controls="ex1-tabs-3" aria-selected="false">信息删除</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item" role="presentation">
|
||||||
|
<a class="nav-link fs-6" id="ex1-tab-4" data-mdb-toggle="tab" href="#ex1-tabs-4"
|
||||||
|
role="tab" aria-controls="ex1-tabs-4" aria-selected="false">信息添加</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<!-- Tabs navs -->
|
||||||
|
<hr class="hr" style="margin: 1px"/>
|
||||||
|
<!-- Tabs content -->
|
||||||
|
<div class="tab-content" id="ex1-content">
|
||||||
|
<div class="tab-pane fade show active" id="ex1-tabs-1" role="tabpanel"
|
||||||
|
aria-labelledby="ex1-tab-1">
|
||||||
|
<div class="card-body" style="min-width: 175px">
|
||||||
|
<form action="query" method="post">
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="form-outline">
|
||||||
|
<input type="number" id="typeText1" class="form-control"
|
||||||
|
name="id"/>
|
||||||
|
<label class="form-label" for="typeText1">课程ID</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="form-outline">
|
||||||
|
<input type="text" id="typeText2" class="form-control"
|
||||||
|
name="name"/>
|
||||||
|
<label class="form-label" for="typeText2">课程名(支持部分)</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="form-outline">
|
||||||
|
<input type="text" id="typeText3" class="form-control"
|
||||||
|
name="description"/>
|
||||||
|
<label class="form-label" for="typeText3">描述(支持部分)</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2 mt-4">
|
||||||
|
<div class="col-lg-6 text-center">
|
||||||
|
<button type="submit" class="btn btn-primary">查询
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 text-center">
|
||||||
|
<button type="reset" class="btn btn-secondary">重置</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="tab-pane fade" id="ex1-tabs-2" role="tabpanel"
|
||||||
|
aria-labelledby="ex1-tab-2">
|
||||||
|
<div class="card-body" style="min-width: 175px">
|
||||||
|
<form action="modinfo" method="post">
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="form-outline">
|
||||||
|
<input type="number" id="typeText7" class="form-control"
|
||||||
|
required name="id"/>
|
||||||
|
<label class="form-label" for="typeText7">课程ID (必填)</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="form-outline">
|
||||||
|
<input type="text" id="typeText8" class="form-control"
|
||||||
|
name="name"/>
|
||||||
|
<label class="form-label" for="typeText8">课程名</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="form-outline">
|
||||||
|
<input type="text" id="typeText9" class="form-control"
|
||||||
|
name="description"/>
|
||||||
|
<label class="form-label" for="typeText9">课程描述</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2 mt-4">
|
||||||
|
<div class="col-lg-6 text-center">
|
||||||
|
<button type="submit" class="btn btn-primary"
|
||||||
|
data-mdb-toggle="tooltip" data-mdb-placement="top"
|
||||||
|
title="留空为不做修改">更改
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 text-center">
|
||||||
|
<button type="reset" class="btn btn-secondary">重置</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="tab-pane fade" id="ex1-tabs-3" role="tabpanel" aria-labelledby="ex1-tab-3">
|
||||||
|
<div class="card-body" style="min-width: 175px">
|
||||||
|
<form action="delinfo" method="post">
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="form-outline">
|
||||||
|
<input type="number" id="typeText13" class="form-control"
|
||||||
|
required name="id"/>
|
||||||
|
<label class="form-label" for="typeText13">课程ID (必填)</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2 mt-4">
|
||||||
|
<div class="col-lg-6 text-center">
|
||||||
|
<button type="submit" class="btn btn-primary">删除</button>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 text-center">
|
||||||
|
<button type="reset" class="btn btn-secondary">重置</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="tab-pane fade" id="ex1-tabs-4" role="tabpanel" aria-labelledby="ex1-tab-4">
|
||||||
|
<!-- <h5 class="card-header">信息添加</h5> -->
|
||||||
|
<div class="card-body" style="min-width: 175px">
|
||||||
|
<form action="addinfo" method="post">
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="form-outline">
|
||||||
|
<input type="text" id="typeText14" class="form-control" required
|
||||||
|
name="name"/>
|
||||||
|
<label class="form-label" for="typeText14">课程名 (必填)</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="form-outline">
|
||||||
|
<input type="text" id="typeText15" class="form-control" required
|
||||||
|
name="description"/>
|
||||||
|
<label class="form-label" for="typeText15">课程描述 (必填)</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2 mt-4">
|
||||||
|
<div class="col-lg-6 text-center">
|
||||||
|
<button type="submit" class="btn btn-primary">添加
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 text-center">
|
||||||
|
<button type="reset" class="btn btn-secondary">重置</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Tabs content -->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Modal -->
|
||||||
|
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="exampleModalLabel">
|
||||||
|
<i class="fas fa-circle-exclamation me-2"></i>错误
|
||||||
|
</h5>
|
||||||
|
<button type="button" class="btn-close" data-mdb-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<c:if test="${not empty errorMessage}">
|
||||||
|
${errorMessage}
|
||||||
|
</c:if>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-primary" data-mdb-dismiss="modal">OK</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Modal -->
|
||||||
|
<div class="modal fade" id="exampleModal2" tabindex="-1" aria-labelledby="exampleModalLabel2"
|
||||||
|
aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="exampleModalLabel2">
|
||||||
|
<i class="fas fa-circle-check me-2"></i>成功
|
||||||
|
</h5>
|
||||||
|
<button type="button" class="btn-close" data-mdb-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<c:if test="${not empty successMessage}">
|
||||||
|
${successMessage}
|
||||||
|
</c:if>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-primary" data-mdb-dismiss="modal">OK</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<footer class="bg-link text-center text-lg-start ">
|
||||||
|
</footer>
|
||||||
|
<!-- Footer -->
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/mdb.min.js"></script>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function () {
|
||||||
|
// 判断模型中是否存在错误信息
|
||||||
|
<c:if test="${not empty errorMessage && errorMessage ne 'null'}">
|
||||||
|
$('#exampleModal').modal('show');
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${not empty successMessage && successMessage ne 'null'}">
|
||||||
|
$('#exampleModal2').modal('show');
|
||||||
|
</c:if>
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
285
project2/web/WEB-INF/views/course/courseopv2_s.jsp
Normal file
285
project2/web/WEB-INF/views/course/courseopv2_s.jsp
Normal file
@ -0,0 +1,285 @@
|
|||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
|
||||||
|
<meta http-equiv="x-ua-compatible" content="ie=edge"/>
|
||||||
|
<title>课程信息修改v2</title>
|
||||||
|
<script src="${pageContext.request.contextPath}/resources/js/jquery-3.7.0.min.js"></script>
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"/>
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700;900&display=swap"
|
||||||
|
rel="stylesheet">
|
||||||
|
<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/mdb.min.css"/>
|
||||||
|
<style>
|
||||||
|
.table-container {
|
||||||
|
min-width: 60vw;
|
||||||
|
/* 设置最小宽度为视窗宽度的80% */
|
||||||
|
min-height: 80vh;
|
||||||
|
/* 设置最小高度为视窗高度的80% */
|
||||||
|
/*display: flex;*/
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-container table {
|
||||||
|
width: 100%;
|
||||||
|
/*height: 100%;*/
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body style="font-family: 'Noto Sans SC Regular',serif">
|
||||||
|
<!--Main Navigation-->
|
||||||
|
<header>
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-light bg-light" style="z-index: 1;min-height: 58.59px">
|
||||||
|
<div class="container">
|
||||||
|
<button class="navbar-toggler" type="button" data-mdb-toggle="collapse"
|
||||||
|
data-mdb-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
|
||||||
|
aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<i class="fas fa-bars"></i>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||||
|
<a class="navbar-brand mt-2 mt-lg-0" href="#">
|
||||||
|
<i class="fas fa-chalkboard-user me-2"></i>
|
||||||
|
教务管理系统
|
||||||
|
</a>
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link active" aria-current="page" href="#">首页</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown1" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
学生管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown1">
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息查询</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息管理</a></li>
|
||||||
|
<li>
|
||||||
|
<hr class="dropdown-divider"/>
|
||||||
|
</li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li>
|
||||||
|
<hr class="dropdown-divider"/>
|
||||||
|
</li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown2" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
教师管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown2">
|
||||||
|
<li><a class="dropdown-item" href="#">教师信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">教师课程管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown3" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
课程管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown3">
|
||||||
|
<li><a class="dropdown-item" href="#">课程信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">课程安排管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown4" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
系统管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown4">
|
||||||
|
<li><a class="dropdown-item" href="#">个人设定</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">用户管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">日志管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">版本信息</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="dropdown">
|
||||||
|
<a class="dropdown-toggle d-flex align-items-center hidden-arrow" href="#"
|
||||||
|
id="navbarDropdownMenuAvatar" role="button" data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
<i class="fas fa-circle-user fa-lg me-1"></i>
|
||||||
|
${username}
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdownMenuAvatar">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="${pageContext.request.contextPath}/logout">登出</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<!--Main Navigation-->
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
<main>
|
||||||
|
<div class="bg-image shadow-2-strong vh-100"
|
||||||
|
style="background-image: url('${pageContext.request.contextPath}/resources/img/jason-blackeye-nyL-rzwP-Mk-unsplash.jpg'); margin-top: -58.59px;">
|
||||||
|
<div class="mask d-flex align-items-center h-100" style="background-color: hsla(0, 0%, 100%, 0.5);">
|
||||||
|
<div class="container d-flex justify-content-center">
|
||||||
|
<button type="button" class="btn btn-primary" onclick="location.href='../dashboard'">返回</button>
|
||||||
|
<div class="table-container rounded-4 shadow-3-strong"
|
||||||
|
style="background-color: rgba(255,255,255,0.9); overflow-y: auto; max-height: 400px">
|
||||||
|
<table class="table table-striped table-hover border-primary">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th scope="col">课程ID</th>
|
||||||
|
<th scope="col">课程名</th>
|
||||||
|
<th scope="col">课程描述</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:forEach var="course" items="${courses}">
|
||||||
|
<tr>
|
||||||
|
<td>${course.courseID}</td>
|
||||||
|
<td>${course.courseName}</td>
|
||||||
|
<td>${course.description}</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="container">
|
||||||
|
<div class="card rounded-4 shadow-3-strong" style="min-width: 244px">
|
||||||
|
<ul class="nav nav-tabs" id="ex1" role="tablist">
|
||||||
|
<li class="nav-item" role="presentation">
|
||||||
|
<a class="nav-link active fs-6" id="ex1-tab-1" data-mdb-toggle="tab" href="#ex1-tabs-1"
|
||||||
|
role="tab" aria-controls="ex1-tabs-1" aria-selected="true">信息查询</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<hr class="hr" style="margin: 1px"/>
|
||||||
|
<div class="tab-content" id="ex1-content">
|
||||||
|
<div class="tab-pane fade show active" id="ex1-tabs-1" role="tabpanel"
|
||||||
|
aria-labelledby="ex1-tab-1">
|
||||||
|
<div class="card-body" style="min-width: 175px">
|
||||||
|
<form action="query" method="post">
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="form-outline">
|
||||||
|
<input type="number" id="typeText1" class="form-control"
|
||||||
|
name="id"/>
|
||||||
|
<label class="form-label" for="typeText1">课程ID</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="form-outline">
|
||||||
|
<input type="text" id="typeText2" class="form-control"
|
||||||
|
name="name"/>
|
||||||
|
<label class="form-label" for="typeText2">课程名(支持部分)</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="form-outline">
|
||||||
|
<input type="text" id="typeText3" class="form-control"
|
||||||
|
name="description"/>
|
||||||
|
<label class="form-label" for="typeText3">描述(支持部分)</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2 mt-4">
|
||||||
|
<div class="col-lg-6 text-center">
|
||||||
|
<button type="submit" class="btn btn-primary">查询
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 text-center">
|
||||||
|
<button type="reset" class="btn btn-secondary">重置</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Modal -->
|
||||||
|
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="exampleModalLabel">
|
||||||
|
<i class="fas fa-circle-exclamation me-2"></i>错误
|
||||||
|
</h5>
|
||||||
|
<button type="button" class="btn-close" data-mdb-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<c:if test="${not empty errorMessage}">
|
||||||
|
${errorMessage}
|
||||||
|
</c:if>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-primary" data-mdb-dismiss="modal">OK</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Modal -->
|
||||||
|
<div class="modal fade" id="exampleModal2" tabindex="-1" aria-labelledby="exampleModalLabel2"
|
||||||
|
aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="exampleModalLabel2">
|
||||||
|
<i class="fas fa-circle-check me-2"></i>成功
|
||||||
|
</h5>
|
||||||
|
<button type="button" class="btn-close" data-mdb-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<c:if test="${not empty successMessage}">
|
||||||
|
${successMessage}
|
||||||
|
</c:if>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-primary" data-mdb-dismiss="modal">OK</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<footer class="bg-link text-center text-lg-start ">
|
||||||
|
</footer>
|
||||||
|
<!-- Footer -->
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/mdb.min.js"></script>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function () {
|
||||||
|
// 判断模型中是否存在错误信息
|
||||||
|
<c:if test="${not empty errorMessage && errorMessage ne 'null'}">
|
||||||
|
$('#exampleModal').modal('show');
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${not empty successMessage && successMessage ne 'null'}">
|
||||||
|
$('#exampleModal2').modal('show');
|
||||||
|
</c:if>
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
285
project2/web/WEB-INF/views/course/courseopv2_t.jsp
Normal file
285
project2/web/WEB-INF/views/course/courseopv2_t.jsp
Normal file
@ -0,0 +1,285 @@
|
|||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
|
||||||
|
<meta http-equiv="x-ua-compatible" content="ie=edge"/>
|
||||||
|
<title>课程信息修改v2</title>
|
||||||
|
<script src="${pageContext.request.contextPath}/resources/js/jquery-3.7.0.min.js"></script>
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"/>
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700;900&display=swap"
|
||||||
|
rel="stylesheet">
|
||||||
|
<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/mdb.min.css"/>
|
||||||
|
<style>
|
||||||
|
.table-container {
|
||||||
|
min-width: 60vw;
|
||||||
|
/* 设置最小宽度为视窗宽度的80% */
|
||||||
|
min-height: 80vh;
|
||||||
|
/* 设置最小高度为视窗高度的80% */
|
||||||
|
/*display: flex;*/
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-container table {
|
||||||
|
width: 100%;
|
||||||
|
/*height: 100%;*/
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body style="font-family: 'Noto Sans SC Regular',serif">
|
||||||
|
<!--Main Navigation-->
|
||||||
|
<header>
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-light bg-light" style="z-index: 1;min-height: 58.59px">
|
||||||
|
<div class="container">
|
||||||
|
<button class="navbar-toggler" type="button" data-mdb-toggle="collapse"
|
||||||
|
data-mdb-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
|
||||||
|
aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<i class="fas fa-bars"></i>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||||
|
<a class="navbar-brand mt-2 mt-lg-0" href="#">
|
||||||
|
<i class="fas fa-chalkboard-user me-2"></i>
|
||||||
|
教务管理系统
|
||||||
|
</a>
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link active" aria-current="page" href="#">首页</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown1" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
学生管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown1">
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息查询</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息管理</a></li>
|
||||||
|
<li>
|
||||||
|
<hr class="dropdown-divider"/>
|
||||||
|
</li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li>
|
||||||
|
<hr class="dropdown-divider"/>
|
||||||
|
</li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown2" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
教师管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown2">
|
||||||
|
<li><a class="dropdown-item" href="#">教师信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">教师课程管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown3" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
课程管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown3">
|
||||||
|
<li><a class="dropdown-item" href="#">课程信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">课程安排管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown4" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
系统管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown4">
|
||||||
|
<li><a class="dropdown-item" href="#">个人设定</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">用户管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">日志管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">版本信息</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="dropdown">
|
||||||
|
<a class="dropdown-toggle d-flex align-items-center hidden-arrow" href="#"
|
||||||
|
id="navbarDropdownMenuAvatar" role="button" data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
<i class="fas fa-circle-user fa-lg me-1"></i>
|
||||||
|
${username}
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdownMenuAvatar">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="${pageContext.request.contextPath}/logout">登出</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<!--Main Navigation-->
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
<main>
|
||||||
|
<div class="bg-image shadow-2-strong vh-100"
|
||||||
|
style="background-image: url('${pageContext.request.contextPath}/resources/img/jason-blackeye-nyL-rzwP-Mk-unsplash.jpg'); margin-top: -58.59px;">
|
||||||
|
<div class="mask d-flex align-items-center h-100" style="background-color: hsla(0, 0%, 100%, 0.5);">
|
||||||
|
<div class="container d-flex justify-content-center">
|
||||||
|
<button type="button" class="btn btn-primary" onclick="location.href='../dashboard'">返回</button>
|
||||||
|
<div class="table-container rounded-4 shadow-3-strong"
|
||||||
|
style="background-color: rgba(255,255,255,0.9); overflow-y: auto; max-height: 400px">
|
||||||
|
<table class="table table-striped table-hover border-primary">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th scope="col">课程ID</th>
|
||||||
|
<th scope="col">课程名</th>
|
||||||
|
<th scope="col">课程描述</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:forEach var="course" items="${courses}">
|
||||||
|
<tr>
|
||||||
|
<td>${course.courseID}</td>
|
||||||
|
<td>${course.courseName}</td>
|
||||||
|
<td>${course.description}</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="container">
|
||||||
|
<div class="card rounded-4 shadow-3-strong" style="min-width: 244px">
|
||||||
|
<ul class="nav nav-tabs" id="ex1" role="tablist">
|
||||||
|
<li class="nav-item" role="presentation">
|
||||||
|
<a class="nav-link active fs-6" id="ex1-tab-1" data-mdb-toggle="tab" href="#ex1-tabs-1"
|
||||||
|
role="tab" aria-controls="ex1-tabs-1" aria-selected="true">信息查询</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<hr class="hr" style="margin: 1px"/>
|
||||||
|
<div class="tab-content" id="ex1-content">
|
||||||
|
<div class="tab-pane fade show active" id="ex1-tabs-1" role="tabpanel"
|
||||||
|
aria-labelledby="ex1-tab-1">
|
||||||
|
<div class="card-body" style="min-width: 175px">
|
||||||
|
<form action="query" method="post">
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="form-outline">
|
||||||
|
<input type="number" id="typeText1" class="form-control"
|
||||||
|
name="id"/>
|
||||||
|
<label class="form-label" for="typeText1">课程ID</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="form-outline">
|
||||||
|
<input type="text" id="typeText2" class="form-control"
|
||||||
|
name="name"/>
|
||||||
|
<label class="form-label" for="typeText2">课程名(支持部分)</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="form-outline">
|
||||||
|
<input type="text" id="typeText3" class="form-control"
|
||||||
|
name="description"/>
|
||||||
|
<label class="form-label" for="typeText3">描述(支持部分)</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2 mt-4">
|
||||||
|
<div class="col-lg-6 text-center">
|
||||||
|
<button type="submit" class="btn btn-primary">查询
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 text-center">
|
||||||
|
<button type="reset" class="btn btn-secondary">重置</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Modal -->
|
||||||
|
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="exampleModalLabel">
|
||||||
|
<i class="fas fa-circle-exclamation me-2"></i>错误
|
||||||
|
</h5>
|
||||||
|
<button type="button" class="btn-close" data-mdb-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<c:if test="${not empty errorMessage}">
|
||||||
|
${errorMessage}
|
||||||
|
</c:if>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-primary" data-mdb-dismiss="modal">OK</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Modal -->
|
||||||
|
<div class="modal fade" id="exampleModal2" tabindex="-1" aria-labelledby="exampleModalLabel2"
|
||||||
|
aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="exampleModalLabel2">
|
||||||
|
<i class="fas fa-circle-check me-2"></i>成功
|
||||||
|
</h5>
|
||||||
|
<button type="button" class="btn-close" data-mdb-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<c:if test="${not empty successMessage}">
|
||||||
|
${successMessage}
|
||||||
|
</c:if>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-primary" data-mdb-dismiss="modal">OK</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<footer class="bg-link text-center text-lg-start ">
|
||||||
|
</footer>
|
||||||
|
<!-- Footer -->
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/mdb.min.js"></script>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function () {
|
||||||
|
// 判断模型中是否存在错误信息
|
||||||
|
<c:if test="${not empty errorMessage && errorMessage ne 'null'}">
|
||||||
|
$('#exampleModal').modal('show');
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${not empty successMessage && successMessage ne 'null'}">
|
||||||
|
$('#exampleModal2').modal('show');
|
||||||
|
</c:if>
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
267
project2/web/WEB-INF/views/person/person.jsp
Normal file
267
project2/web/WEB-INF/views/person/person.jsp
Normal file
@ -0,0 +1,267 @@
|
|||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
|
||||||
|
<meta http-equiv="x-ua-compatible" content="ie=edge"/>
|
||||||
|
<title>个人设置</title>
|
||||||
|
<script src="${pageContext.request.contextPath}/resources/js/jquery-3.7.0.min.js"></script>
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"/>
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700;900&display=swap"
|
||||||
|
rel="stylesheet">
|
||||||
|
<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/mdb.min.css"/>
|
||||||
|
<style>
|
||||||
|
.tab-pane {
|
||||||
|
min-height: 500px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body style="font-family: 'Noto Sans SC Regular',serif">
|
||||||
|
<!--Main Navigation-->
|
||||||
|
<header>
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-light bg-light" style="z-index: 1;min-height: 58.59px">
|
||||||
|
<div class="container">
|
||||||
|
<button class="navbar-toggler" type="button" data-mdb-toggle="collapse"
|
||||||
|
data-mdb-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
|
||||||
|
aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<i class="fas fa-bars"></i>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||||
|
<a class="navbar-brand mt-2 mt-lg-0" href="#">
|
||||||
|
<i class="fas fa-chalkboard-user me-2"></i>
|
||||||
|
教务管理系统
|
||||||
|
</a>
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link active" aria-current="page" href="#">首页</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown1" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
学生管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown1">
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息查询</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息管理</a></li>
|
||||||
|
<li>
|
||||||
|
<hr class="dropdown-divider"/>
|
||||||
|
</li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li>
|
||||||
|
<hr class="dropdown-divider"/>
|
||||||
|
</li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown2" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
教师管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown2">
|
||||||
|
<li><a class="dropdown-item" href="#">教师信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">教师课程管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown3" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
课程管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown3">
|
||||||
|
<li><a class="dropdown-item" href="#">课程信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">课程安排管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown4" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
系统管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown4">
|
||||||
|
<li><a class="dropdown-item" href="#">个人设定</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">用户管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">日志管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">版本信息</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="dropdown">
|
||||||
|
<a class="dropdown-toggle d-flex align-items-center hidden-arrow" href="#"
|
||||||
|
id="navbarDropdownMenuAvatar" role="button" data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
<i class="fas fa-circle-user fa-lg me-1"></i>
|
||||||
|
${username}
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdownMenuAvatar">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="${pageContext.request.contextPath}/logout">登出</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<!--Main Navigation-->
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
<main>
|
||||||
|
<div class="bg-image shadow-2-strong vh-100"
|
||||||
|
style="background-image: url('${pageContext.request.contextPath}/resources/img/jason-blackeye-nyL-rzwP-Mk-unsplash.jpg'); margin-top: -58.59px;">
|
||||||
|
<div class="mask d-flex align-items-center h-100" style="background-color: hsla(0, 0%, 100%, 0.5);">
|
||||||
|
<div class="container d-flex justify-content-center">
|
||||||
|
<button type="button" class="btn btn-primary" onclick="function goBack() {
|
||||||
|
window.history.back(); //返回上一页
|
||||||
|
}
|
||||||
|
goBack()">返回
|
||||||
|
</button>
|
||||||
|
<div class="container">
|
||||||
|
<div class="card rounded-4 shadow-3-strong" style="min-width: 244px">
|
||||||
|
<ul class="nav nav-tabs" id="ex1" role="tablist">
|
||||||
|
<li class="nav-item" role="presentation">
|
||||||
|
<a class="nav-link active fs-6" id="ex1-tab-1" data-mdb-toggle="tab" href="#ex1-tabs-1"
|
||||||
|
role="tab" aria-controls="ex1-tabs-1" aria-selected="true">设置</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<hr class="hr" style="margin: 1px"/>
|
||||||
|
<div class="tab-content" id="ex1-content">
|
||||||
|
<div class="tab-pane fade show active" id="ex1-tabs-1" role="tabpanel"
|
||||||
|
aria-labelledby="ex1-tab-1">
|
||||||
|
<div class="card-body" style="min-width: 175px">
|
||||||
|
<div class="note note-primary mb-3" id="note" style="display: none">
|
||||||
|
<strong>提示:</strong> 用户头像更新成功
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-2 text-center">
|
||||||
|
<p>
|
||||||
|
头像设置:
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-2">
|
||||||
|
<i class="far fa-circle-user fa-8x" id="default_avatar"
|
||||||
|
style="display: none"></i>
|
||||||
|
<img src="/person/image" class="img-fluid rounded-circle" alt="avatar"
|
||||||
|
style="height: 128px;width: 128px;display: none"
|
||||||
|
id="custom_avatar"/>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-4">
|
||||||
|
<label class="form-label"
|
||||||
|
for="customFile">请选择要上传的图片(大小<15MB)</label>
|
||||||
|
<input type="file" class="form-control" id="customFile" name="avatar"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12 text-center mt-lg-5">
|
||||||
|
<%-- Todo: 换成消息框--%>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Modal -->
|
||||||
|
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="exampleModalLabel">
|
||||||
|
<i class="fas fa-circle-info me-2"></i>提示
|
||||||
|
</h5>
|
||||||
|
<button type="button" class="btn-close" data-mdb-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<c:if test="${not empty message}">
|
||||||
|
${message}
|
||||||
|
</c:if>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-primary" data-mdb-dismiss="modal">OK</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<footer class="bg-link text-center text-lg-start ">
|
||||||
|
</footer>
|
||||||
|
<!-- Footer -->
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/mdb.min.js"></script>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function () {
|
||||||
|
<c:if test="${not empty message && message ne 'null'}">
|
||||||
|
$('#exampleModal').modal('show');
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
fetch("/person/image")
|
||||||
|
.then(function (response) {
|
||||||
|
if (response.ok) {
|
||||||
|
// 图像存在,显示自定义头像
|
||||||
|
$('#custom_avatar').show();
|
||||||
|
} else {
|
||||||
|
// 图像不存在,显示默认头像
|
||||||
|
$('#default_avatar').show();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
console.log("请求失败:", error);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#customFile').on('change', function () {
|
||||||
|
var file = this.files[0]; // 获取选择的文件
|
||||||
|
|
||||||
|
// 检查是否选择了文件
|
||||||
|
if (!file) {
|
||||||
|
// 如果没有选择文件,执行相应的操作
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建FormData对象,将文件数据附加到其中
|
||||||
|
var formData = new FormData();
|
||||||
|
formData.append('avatar', file);
|
||||||
|
|
||||||
|
// 发送AJAX请求到后端的uploadAvatar方法
|
||||||
|
$.ajax({
|
||||||
|
url: 'uploadAvatar',
|
||||||
|
type: 'POST',
|
||||||
|
data: formData,
|
||||||
|
processData: false, // 告诉jQuery不要处理FormData对象
|
||||||
|
contentType: false, // 告诉jQuery不要设置Content-Type请求头
|
||||||
|
success: function () {
|
||||||
|
$('#default_avatar').hide(); // 隐藏默认头像
|
||||||
|
$('#custom_avatar').show(); // 显示自定义头像
|
||||||
|
$('#note').show(); // 显示提示消息
|
||||||
|
},
|
||||||
|
error: function (xhr, status, error) {
|
||||||
|
console.log('上传失败:', error);
|
||||||
|
alert('上传失败,请重试');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
267
project2/web/WEB-INF/views/person/person_s.jsp
Normal file
267
project2/web/WEB-INF/views/person/person_s.jsp
Normal file
@ -0,0 +1,267 @@
|
|||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
|
||||||
|
<meta http-equiv="x-ua-compatible" content="ie=edge"/>
|
||||||
|
<title>个人设置</title>
|
||||||
|
<script src="${pageContext.request.contextPath}/resources/js/jquery-3.7.0.min.js"></script>
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"/>
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700;900&display=swap"
|
||||||
|
rel="stylesheet">
|
||||||
|
<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/mdb.min.css"/>
|
||||||
|
<style>
|
||||||
|
.tab-pane {
|
||||||
|
min-height: 500px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body style="font-family: 'Noto Sans SC Regular',serif">
|
||||||
|
<!--Main Navigation-->
|
||||||
|
<header>
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-light bg-light" style="z-index: 1;min-height: 58.59px">
|
||||||
|
<div class="container">
|
||||||
|
<button class="navbar-toggler" type="button" data-mdb-toggle="collapse"
|
||||||
|
data-mdb-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
|
||||||
|
aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<i class="fas fa-bars"></i>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||||
|
<a class="navbar-brand mt-2 mt-lg-0" href="#">
|
||||||
|
<i class="fas fa-chalkboard-user me-2"></i>
|
||||||
|
教务管理系统
|
||||||
|
</a>
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link active" aria-current="page" href="#">首页</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown1" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
学生管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown1">
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息查询</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息管理</a></li>
|
||||||
|
<li>
|
||||||
|
<hr class="dropdown-divider"/>
|
||||||
|
</li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li>
|
||||||
|
<hr class="dropdown-divider"/>
|
||||||
|
</li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown2" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
教师管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown2">
|
||||||
|
<li><a class="dropdown-item" href="#">教师信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">教师课程管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown3" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
课程管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown3">
|
||||||
|
<li><a class="dropdown-item" href="#">课程信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">课程安排管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown4" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
系统管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown4">
|
||||||
|
<li><a class="dropdown-item" href="#">个人设定</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">用户管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">日志管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">版本信息</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="dropdown">
|
||||||
|
<a class="dropdown-toggle d-flex align-items-center hidden-arrow" href="#"
|
||||||
|
id="navbarDropdownMenuAvatar" role="button" data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
<i class="fas fa-circle-user fa-lg me-1"></i>
|
||||||
|
${username}
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdownMenuAvatar">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="${pageContext.request.contextPath}/logout">登出</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<!--Main Navigation-->
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
<main>
|
||||||
|
<div class="bg-image shadow-2-strong vh-100"
|
||||||
|
style="background-image: url('${pageContext.request.contextPath}/resources/img/jason-blackeye-nyL-rzwP-Mk-unsplash.jpg'); margin-top: -58.59px;">
|
||||||
|
<div class="mask d-flex align-items-center h-100" style="background-color: hsla(0, 0%, 100%, 0.5);">
|
||||||
|
<div class="container d-flex justify-content-center">
|
||||||
|
<button type="button" class="btn btn-primary" onclick="function goBack() {
|
||||||
|
window.history.back(); //返回上一页
|
||||||
|
}
|
||||||
|
goBack()">返回
|
||||||
|
</button>
|
||||||
|
<div class="container">
|
||||||
|
<div class="card rounded-4 shadow-3-strong" style="min-width: 244px">
|
||||||
|
<ul class="nav nav-tabs" id="ex1" role="tablist">
|
||||||
|
<li class="nav-item" role="presentation">
|
||||||
|
<a class="nav-link active fs-6" id="ex1-tab-1" data-mdb-toggle="tab" href="#ex1-tabs-1"
|
||||||
|
role="tab" aria-controls="ex1-tabs-1" aria-selected="true">设置</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<hr class="hr" style="margin: 1px"/>
|
||||||
|
<div class="tab-content" id="ex1-content">
|
||||||
|
<div class="tab-pane fade show active" id="ex1-tabs-1" role="tabpanel"
|
||||||
|
aria-labelledby="ex1-tab-1">
|
||||||
|
<div class="card-body" style="min-width: 175px">
|
||||||
|
<div class="note note-primary mb-3" id="note" style="display: none">
|
||||||
|
<strong>提示:</strong> 用户头像更新成功
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-2 text-center">
|
||||||
|
<p>
|
||||||
|
头像设置:
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-2">
|
||||||
|
<i class="far fa-circle-user fa-8x" id="default_avatar"
|
||||||
|
style="display: none"></i>
|
||||||
|
<img src="/person/image" class="img-fluid rounded-circle" alt="avatar"
|
||||||
|
style="height: 128px;width: 128px;display: none"
|
||||||
|
id="custom_avatar"/>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-4">
|
||||||
|
<label class="form-label"
|
||||||
|
for="customFile">请选择要上传的图片(大小<15MB)</label>
|
||||||
|
<input type="file" class="form-control" id="customFile" name="avatar"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12 text-center mt-lg-5">
|
||||||
|
<%-- Todo: 换成消息框--%>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Modal -->
|
||||||
|
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="exampleModalLabel">
|
||||||
|
<i class="fas fa-circle-info me-2"></i>提示
|
||||||
|
</h5>
|
||||||
|
<button type="button" class="btn-close" data-mdb-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<c:if test="${not empty message}">
|
||||||
|
${message}
|
||||||
|
</c:if>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-primary" data-mdb-dismiss="modal">OK</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<footer class="bg-link text-center text-lg-start ">
|
||||||
|
</footer>
|
||||||
|
<!-- Footer -->
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/mdb.min.js"></script>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function () {
|
||||||
|
<c:if test="${not empty message && message ne 'null'}">
|
||||||
|
$('#exampleModal').modal('show');
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
fetch("/person/image")
|
||||||
|
.then(function (response) {
|
||||||
|
if (response.ok) {
|
||||||
|
// 图像存在,显示自定义头像
|
||||||
|
$('#custom_avatar').show();
|
||||||
|
} else {
|
||||||
|
// 图像不存在,显示默认头像
|
||||||
|
$('#default_avatar').show();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
console.log("请求失败:", error);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#customFile').on('change', function () {
|
||||||
|
var file = this.files[0]; // 获取选择的文件
|
||||||
|
|
||||||
|
// 检查是否选择了文件
|
||||||
|
if (!file) {
|
||||||
|
// 如果没有选择文件,执行相应的操作
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建FormData对象,将文件数据附加到其中
|
||||||
|
var formData = new FormData();
|
||||||
|
formData.append('avatar', file);
|
||||||
|
|
||||||
|
// 发送AJAX请求到后端的uploadAvatar方法
|
||||||
|
$.ajax({
|
||||||
|
url: 'uploadAvatar',
|
||||||
|
type: 'POST',
|
||||||
|
data: formData,
|
||||||
|
processData: false, // 告诉jQuery不要处理FormData对象
|
||||||
|
contentType: false, // 告诉jQuery不要设置Content-Type请求头
|
||||||
|
success: function () {
|
||||||
|
$('#default_avatar').hide(); // 隐藏默认头像
|
||||||
|
$('#custom_avatar').show(); // 显示自定义头像
|
||||||
|
$('#note').show(); // 显示提示消息
|
||||||
|
},
|
||||||
|
error: function (xhr, status, error) {
|
||||||
|
console.log('上传失败:', error);
|
||||||
|
alert('上传失败,请重试');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
267
project2/web/WEB-INF/views/person/person_t.jsp
Normal file
267
project2/web/WEB-INF/views/person/person_t.jsp
Normal file
@ -0,0 +1,267 @@
|
|||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
|
||||||
|
<meta http-equiv="x-ua-compatible" content="ie=edge"/>
|
||||||
|
<title>个人设置</title>
|
||||||
|
<script src="${pageContext.request.contextPath}/resources/js/jquery-3.7.0.min.js"></script>
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"/>
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700;900&display=swap"
|
||||||
|
rel="stylesheet">
|
||||||
|
<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/mdb.min.css"/>
|
||||||
|
<style>
|
||||||
|
.tab-pane {
|
||||||
|
min-height: 500px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body style="font-family: 'Noto Sans SC Regular',serif">
|
||||||
|
<!--Main Navigation-->
|
||||||
|
<header>
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-light bg-light" style="z-index: 1;min-height: 58.59px">
|
||||||
|
<div class="container">
|
||||||
|
<button class="navbar-toggler" type="button" data-mdb-toggle="collapse"
|
||||||
|
data-mdb-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
|
||||||
|
aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<i class="fas fa-bars"></i>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||||
|
<a class="navbar-brand mt-2 mt-lg-0" href="#">
|
||||||
|
<i class="fas fa-chalkboard-user me-2"></i>
|
||||||
|
教务管理系统
|
||||||
|
</a>
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link active" aria-current="page" href="#">首页</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown1" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
学生管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown1">
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息查询</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生信息管理</a></li>
|
||||||
|
<li>
|
||||||
|
<hr class="dropdown-divider"/>
|
||||||
|
</li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生成绩管理</a></li>
|
||||||
|
<li>
|
||||||
|
<hr class="dropdown-divider"/>
|
||||||
|
</li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">学生选课管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown2" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
教师管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown2">
|
||||||
|
<li><a class="dropdown-item" href="#">教师信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">教师课程管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown3" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
课程管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown3">
|
||||||
|
<li><a class="dropdown-item" href="#">课程信息管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">课程安排管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown4" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
系统管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown4">
|
||||||
|
<li><a class="dropdown-item" href="#">个人设定</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">用户管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">日志管理</a></li>
|
||||||
|
<li><a class="dropdown-item" href="#">版本信息</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="dropdown">
|
||||||
|
<a class="dropdown-toggle d-flex align-items-center hidden-arrow" href="#"
|
||||||
|
id="navbarDropdownMenuAvatar" role="button" data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
<i class="fas fa-circle-user fa-lg me-1"></i>
|
||||||
|
${username}
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdownMenuAvatar">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="${pageContext.request.contextPath}/logout">登出</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<!--Main Navigation-->
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
<main>
|
||||||
|
<div class="bg-image shadow-2-strong vh-100"
|
||||||
|
style="background-image: url('${pageContext.request.contextPath}/resources/img/jason-blackeye-nyL-rzwP-Mk-unsplash.jpg'); margin-top: -58.59px;">
|
||||||
|
<div class="mask d-flex align-items-center h-100" style="background-color: hsla(0, 0%, 100%, 0.5);">
|
||||||
|
<div class="container d-flex justify-content-center">
|
||||||
|
<button type="button" class="btn btn-primary" onclick="function goBack() {
|
||||||
|
window.history.back(); //返回上一页
|
||||||
|
}
|
||||||
|
goBack()">返回
|
||||||
|
</button>
|
||||||
|
<div class="container">
|
||||||
|
<div class="card rounded-4 shadow-3-strong" style="min-width: 244px">
|
||||||
|
<ul class="nav nav-tabs" id="ex1" role="tablist">
|
||||||
|
<li class="nav-item" role="presentation">
|
||||||
|
<a class="nav-link active fs-6" id="ex1-tab-1" data-mdb-toggle="tab" href="#ex1-tabs-1"
|
||||||
|
role="tab" aria-controls="ex1-tabs-1" aria-selected="true">设置</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<hr class="hr" style="margin: 1px"/>
|
||||||
|
<div class="tab-content" id="ex1-content">
|
||||||
|
<div class="tab-pane fade show active" id="ex1-tabs-1" role="tabpanel"
|
||||||
|
aria-labelledby="ex1-tab-1">
|
||||||
|
<div class="card-body" style="min-width: 175px">
|
||||||
|
<div class="note note-primary mb-3" id="note" style="display: none">
|
||||||
|
<strong>提示:</strong> 用户头像更新成功
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-2 text-center">
|
||||||
|
<p>
|
||||||
|
头像设置:
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-2">
|
||||||
|
<i class="far fa-circle-user fa-8x" id="default_avatar"
|
||||||
|
style="display: none"></i>
|
||||||
|
<img src="/person/image" class="img-fluid rounded-circle" alt="avatar"
|
||||||
|
style="height: 128px;width: 128px;display: none"
|
||||||
|
id="custom_avatar"/>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-4">
|
||||||
|
<label class="form-label"
|
||||||
|
for="customFile">请选择要上传的图片(大小<15MB)</label>
|
||||||
|
<input type="file" class="form-control" id="customFile" name="avatar"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12 text-center mt-lg-5">
|
||||||
|
<%-- Todo: 换成消息框--%>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Modal -->
|
||||||
|
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="exampleModalLabel">
|
||||||
|
<i class="fas fa-circle-info me-2"></i>提示
|
||||||
|
</h5>
|
||||||
|
<button type="button" class="btn-close" data-mdb-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<c:if test="${not empty message}">
|
||||||
|
${message}
|
||||||
|
</c:if>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-primary" data-mdb-dismiss="modal">OK</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<footer class="bg-link text-center text-lg-start ">
|
||||||
|
</footer>
|
||||||
|
<!-- Footer -->
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/mdb.min.js"></script>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function () {
|
||||||
|
<c:if test="${not empty message && message ne 'null'}">
|
||||||
|
$('#exampleModal').modal('show');
|
||||||
|
</c:if>
|
||||||
|
|
||||||
|
fetch("/person/image")
|
||||||
|
.then(function (response) {
|
||||||
|
if (response.ok) {
|
||||||
|
// 图像存在,显示自定义头像
|
||||||
|
$('#custom_avatar').show();
|
||||||
|
} else {
|
||||||
|
// 图像不存在,显示默认头像
|
||||||
|
$('#default_avatar').show();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
console.log("请求失败:", error);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#customFile').on('change', function () {
|
||||||
|
var file = this.files[0]; // 获取选择的文件
|
||||||
|
|
||||||
|
// 检查是否选择了文件
|
||||||
|
if (!file) {
|
||||||
|
// 如果没有选择文件,执行相应的操作
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建FormData对象,将文件数据附加到其中
|
||||||
|
var formData = new FormData();
|
||||||
|
formData.append('avatar', file);
|
||||||
|
|
||||||
|
// 发送AJAX请求到后端的uploadAvatar方法
|
||||||
|
$.ajax({
|
||||||
|
url: 'uploadAvatar',
|
||||||
|
type: 'POST',
|
||||||
|
data: formData,
|
||||||
|
processData: false, // 告诉jQuery不要处理FormData对象
|
||||||
|
contentType: false, // 告诉jQuery不要设置Content-Type请求头
|
||||||
|
success: function () {
|
||||||
|
$('#default_avatar').hide(); // 隐藏默认头像
|
||||||
|
$('#custom_avatar').show(); // 显示自定义头像
|
||||||
|
$('#note').show(); // 显示提示消息
|
||||||
|
},
|
||||||
|
error: function (xhr, status, error) {
|
||||||
|
console.log('上传失败:', error);
|
||||||
|
alert('上传失败,请重试');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
211
project2/web/WEB-INF/views/scoreQueryResult_t.jsp
Normal file
211
project2/web/WEB-INF/views/scoreQueryResult_t.jsp
Normal file
@ -0,0 +1,211 @@
|
|||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
|
||||||
|
<meta http-equiv="x-ua-compatible" content="ie=edge"/>
|
||||||
|
<title>成绩信息查询结果页</title>
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"/>
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700;900&display=swap"
|
||||||
|
rel="stylesheet">
|
||||||
|
<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/mdb.min.css"/>
|
||||||
|
<style>
|
||||||
|
.table-container {
|
||||||
|
min-width: 80vw; /* 设置最小宽度为视窗宽度的80% */
|
||||||
|
min-height: 80vh; /* 设置最小高度为视窗高度的80% */
|
||||||
|
/*display: flex;*/
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-container table {
|
||||||
|
width: 100%;
|
||||||
|
/*height: 100%;*/
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body style="font-family: 'Noto Sans SC Regular',serif">
|
||||||
|
<!--Main Navigation-->
|
||||||
|
<header>
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-light bg-light" style="z-index: 1;min-height: 58.59px">
|
||||||
|
<div class="container">
|
||||||
|
<button class="navbar-toggler" type="button" data-mdb-toggle="collapse"
|
||||||
|
data-mdb-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
|
||||||
|
aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<i class="fas fa-bars"></i>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||||
|
<a class="navbar-brand mt-2 mt-lg-0" href="#">
|
||||||
|
<i class="fas fa-chalkboard-user me-2"></i>
|
||||||
|
教务管理系统
|
||||||
|
</a>
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link active" aria-current="page" href="/dashboard">首页</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown1" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
学生管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown1">
|
||||||
|
<li><a class="dropdown-item" href="/student/all">学生信息显示</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/student/queryinfo">学生信息查询</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/student/modstep1">学生信息修改(旧)</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/student/infomodv2">学生信息修改</a></li>
|
||||||
|
<li>
|
||||||
|
<hr class="dropdown-divider" />
|
||||||
|
</li>
|
||||||
|
<li><a class="dropdown-item" href="/score/all">成绩查看</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/score/infomodv2">成绩管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown2" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
教师管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown2">
|
||||||
|
<li><a class="dropdown-item" href="/teacher/manage">教师信息管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown3" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
课程管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown3">
|
||||||
|
<li><a class="dropdown-item" href="/course/all">课程查看</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/course/infomodv2">课程管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown4" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
系统管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown4">
|
||||||
|
<li><a class="dropdown-item" href="/person/settings">个人设定</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/system/settings">系统设定</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/user/usermanage">用户管理</a></li>
|
||||||
|
<%-- <li><a class="dropdown-item" href="#">日志管理</a></li>--%>
|
||||||
|
<li><a class="dropdown-item" href="#">版本信息</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="dropdown">
|
||||||
|
<a class="dropdown-toggle d-flex align-items-center hidden-arrow" href="#"
|
||||||
|
id="navbarDropdownMenuAvatar" role="button" data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
<i class="fas fa-circle-user fa-lg me-1"></i>
|
||||||
|
${username}
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdownMenuAvatar">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="${pageContext.request.contextPath}/logout">登出</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<!--Main Navigation-->
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
<main>
|
||||||
|
<div class="bg-image shadow-2-strong vh-100"
|
||||||
|
style="background-image: url('${pageContext.request.contextPath}/resources/img/jason-blackeye-nyL-rzwP-Mk-unsplash.jpg'); margin-top: -58.59px;">
|
||||||
|
<div class="mask d-flex align-items-center h-100" style="background-color: hsla(0, 0%, 100%, 0.5);">
|
||||||
|
<div class="container d-flex justify-content-center">
|
||||||
|
<div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<button type="button" class="btn btn-primary" onclick="function goBack() {
|
||||||
|
window.history.back(); //返回上一页
|
||||||
|
}
|
||||||
|
goBack()">返回
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<button type="button" class="btn btn-primary" onclick="downloadCSV()">导出</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="table-container rounded-4 shadow-3-strong"
|
||||||
|
style="background-color: rgba(255,255,255,0.9); overflow-y: auto; max-height: 400px;">
|
||||||
|
<table class="table table-striped table-hover border-primary">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th scope="col">成绩ID</th>
|
||||||
|
<th scope="col">学号</th>
|
||||||
|
<th scope="col">学生姓名</th>
|
||||||
|
<th scope="col">课程ID</th>
|
||||||
|
<th scope="col">课程名</th>
|
||||||
|
<th scope="col">成绩</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:forEach var="score" items="${scores}">
|
||||||
|
<tr>
|
||||||
|
<td>${score.scoreID}</td>
|
||||||
|
<td>${score.student.id}</td>
|
||||||
|
<td>${score.student.name}</td>
|
||||||
|
<td>${score.course.courseID}</td>
|
||||||
|
<td>${score.course.courseName}</td>
|
||||||
|
<td>${score.score}</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<footer class="bg-link text-center text-lg-start ">
|
||||||
|
</footer>
|
||||||
|
<!-- Footer -->
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/mdb.min.js"></script>
|
||||||
|
<script>
|
||||||
|
function downloadCSV() {
|
||||||
|
// 获取文件名
|
||||||
|
var fileName = "${download}";
|
||||||
|
|
||||||
|
// 构建文件下载链接
|
||||||
|
var downloadLink = "/output/get-csv?filename=" + fileName;
|
||||||
|
|
||||||
|
// 创建一个隐藏的<a>元素并设置下载链接
|
||||||
|
var linkElement = document.createElement('a');
|
||||||
|
linkElement.href = downloadLink;
|
||||||
|
linkElement.target = "_blank";
|
||||||
|
linkElement.download = fileName;
|
||||||
|
|
||||||
|
// 将<a>元素添加到DOM树中
|
||||||
|
document.body.appendChild(linkElement);
|
||||||
|
|
||||||
|
// 模拟点击<a>元素来触发下载操作
|
||||||
|
linkElement.click();
|
||||||
|
|
||||||
|
// 从DOM树中移除<a>元素
|
||||||
|
document.body.removeChild(linkElement);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
298
project2/web/WEB-INF/views/studentMod_t.jsp
Normal file
298
project2/web/WEB-INF/views/studentMod_t.jsp
Normal file
@ -0,0 +1,298 @@
|
|||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
|
||||||
|
<meta http-equiv="x-ua-compatible" content="ie=edge"/>
|
||||||
|
<title>学生信息查看</title>
|
||||||
|
<script src="${pageContext.request.contextPath}/resources/js/jquery-3.7.0.min.js"></script>
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"/>
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700;900&display=swap"
|
||||||
|
rel="stylesheet">
|
||||||
|
<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/mdb.min.css"/>
|
||||||
|
<style>
|
||||||
|
.table-container {
|
||||||
|
min-width: 60vw; /* 设置最小宽度为视窗宽度的80% */
|
||||||
|
min-height: 80vh; /* 设置最小高度为视窗高度的80% */
|
||||||
|
/*display: flex;*/
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-container table {
|
||||||
|
width: 100%;
|
||||||
|
/*height: 100%;*/
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body style="font-family: 'Noto Sans SC Regular',serif">
|
||||||
|
<!--Main Navigation-->
|
||||||
|
<header>
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-light bg-light" style="z-index: 1;min-height: 58.59px">
|
||||||
|
<div class="container">
|
||||||
|
<button class="navbar-toggler" type="button" data-mdb-toggle="collapse"
|
||||||
|
data-mdb-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
|
||||||
|
aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<i class="fas fa-bars"></i>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||||
|
<a class="navbar-brand mt-2 mt-lg-0" href="#">
|
||||||
|
<i class="fas fa-chalkboard-user me-2"></i>
|
||||||
|
教务管理系统
|
||||||
|
</a>
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link active" aria-current="page" href="/dashboard">首页</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown1" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
学生管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown1">
|
||||||
|
<li><a class="dropdown-item" href="/student/all">学生信息显示</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/student/queryinfo">学生信息查询</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/student/modstep1">学生信息修改(旧)</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/student/infomodv2">学生信息修改</a></li>
|
||||||
|
<li>
|
||||||
|
<hr class="dropdown-divider" />
|
||||||
|
</li>
|
||||||
|
<li><a class="dropdown-item" href="/score/all">成绩查看</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/score/infomodv2">成绩管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown2" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
教师管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown2">
|
||||||
|
<li><a class="dropdown-item" href="/teacher/manage">教师信息管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown3" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
课程管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown3">
|
||||||
|
<li><a class="dropdown-item" href="/course/all">课程查看</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/course/infomodv2">课程管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown4" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
系统管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown4">
|
||||||
|
<li><a class="dropdown-item" href="/person/settings">个人设定</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/system/settings">系统设定</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/user/usermanage">用户管理</a></li>
|
||||||
|
<%-- <li><a class="dropdown-item" href="#">日志管理</a></li>--%>
|
||||||
|
<li><a class="dropdown-item" href="#">版本信息</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="dropdown">
|
||||||
|
<a class="dropdown-toggle d-flex align-items-center hidden-arrow" href="#"
|
||||||
|
id="navbarDropdownMenuAvatar" role="button" data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
<i class="fas fa-circle-user fa-lg me-1"></i>
|
||||||
|
${username}
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdownMenuAvatar">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="${pageContext.request.contextPath}/logout">登出</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<!--Main Navigation-->
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
<main>
|
||||||
|
<div class="bg-image shadow-2-strong vh-100"
|
||||||
|
style="background-image: url('${pageContext.request.contextPath}/resources/img/jason-blackeye-nyL-rzwP-Mk-unsplash.jpg'); margin-top: -58.59px;">
|
||||||
|
<div class="mask d-flex align-items-center h-100" style="background-color: hsla(0, 0%, 100%, 0.5);">
|
||||||
|
<div class="container d-flex justify-content-center">
|
||||||
|
<button type="button" class="btn btn-primary" onclick="location.href='../dashboard'">返回</button>
|
||||||
|
<div class="table-container rounded-4 shadow-3-strong"
|
||||||
|
style="background-color: rgba(255,255,255,0.9); overflow-y: auto; max-height: 400px">
|
||||||
|
<table class="table table-striped table-hover border-primary">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th scope="col">ID</th>
|
||||||
|
<th scope="col">姓名</th>
|
||||||
|
<th scope="col">性别</th>
|
||||||
|
<th scope="col">出生日期</th>
|
||||||
|
<th scope="col">联系方式</th>
|
||||||
|
<th scope="col">班级</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:forEach var="student" items="${students}">
|
||||||
|
<tr>
|
||||||
|
<td>${student.id}</td>
|
||||||
|
<td>${student.name}</td>
|
||||||
|
<td>${student.sex}</td>
|
||||||
|
<td>${student.birthday}</td>
|
||||||
|
<td>${student.phone}</td>
|
||||||
|
<td>${student.classes}</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="container" style="min-width: 190px">
|
||||||
|
<div class="card rounded-4 shadow-3-strong" style="min-width: 180px">
|
||||||
|
<h5 class="card-header">信息修改</h5>
|
||||||
|
<div class="card-body" style="min-width: 175px">
|
||||||
|
<form action="modinfo" method="post">
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="form-outline">
|
||||||
|
<input type="number" id="typeText1" class="form-control" required
|
||||||
|
name="id"/>
|
||||||
|
<label class="form-label" for="typeText1">ID (必填)</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="form-outline">
|
||||||
|
<input type="text" id="typeText2" class="form-control"
|
||||||
|
name="name"/>
|
||||||
|
<label class="form-label" for="typeText2">姓名</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="form-outline">
|
||||||
|
<input type="text" id="typeText3" class="form-control" name="sex"/>
|
||||||
|
<label class="form-label" for="typeText3">性别 (男/女)</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="form-outline">
|
||||||
|
<input type="date" id="typeText4" class="form-control"
|
||||||
|
name="birthday"/>
|
||||||
|
<label class="form-label" for="typeText4">出生日期</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="form-outline">
|
||||||
|
<input type="text" id="typeText5" class="form-control"
|
||||||
|
name="phone"/>
|
||||||
|
<label class="form-label" for="typeText5">联系方式</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="form-outline">
|
||||||
|
<input type="text" id="typeText6" class="form-control"
|
||||||
|
name="classes"/>
|
||||||
|
<label class="form-label" for="typeText6">班级</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<button type="submit" class="btn btn-primary" data-mdb-toggle="tooltip"
|
||||||
|
data-mdb-placement="top" title="留空为不做修改">更改
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<button type="reset" class="btn btn-secondary">重置</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Modal -->
|
||||||
|
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="exampleModalLabel">
|
||||||
|
<i class="fas fa-circle-exclamation me-2"></i>错误
|
||||||
|
</h5>
|
||||||
|
<button type="button" class="btn-close" data-mdb-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<c:if test="${not empty errorMessage}">
|
||||||
|
${errorMessage}
|
||||||
|
</c:if>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-primary" data-mdb-dismiss="modal">OK</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Modal -->
|
||||||
|
<div class="modal fade" id="exampleModal2" tabindex="-1" aria-labelledby="exampleModalLabel2" aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="exampleModalLabel2">
|
||||||
|
<i class="fas fa-circle-check me-2"></i>成功
|
||||||
|
</h5>
|
||||||
|
<button type="button" class="btn-close" data-mdb-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<c:if test="${not empty successMessage}">
|
||||||
|
${successMessage}
|
||||||
|
</c:if>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-primary" data-mdb-dismiss="modal">OK</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<footer class="bg-link text-center text-lg-start ">
|
||||||
|
</footer>
|
||||||
|
<!-- Footer -->
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/mdb.min.js"></script>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function () {
|
||||||
|
<%-- 判断模型中是否存在错误信息 --%>
|
||||||
|
<c:if test="${not empty errorMessage && errorMessage ne 'null'}">
|
||||||
|
$('#exampleModal').modal('show');
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${not empty successMessage && successMessage ne 'null'}">
|
||||||
|
$('#exampleModal2').modal('show');
|
||||||
|
</c:if>
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
177
project2/web/WEB-INF/views/studentQueryResult_t.jsp
Normal file
177
project2/web/WEB-INF/views/studentQueryResult_t.jsp
Normal file
@ -0,0 +1,177 @@
|
|||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
|
||||||
|
<meta http-equiv="x-ua-compatible" content="ie=edge"/>
|
||||||
|
<title>学生信息查询结果页</title>
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"/>
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700;900&display=swap"
|
||||||
|
rel="stylesheet">
|
||||||
|
<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/mdb.min.css"/>
|
||||||
|
<style>
|
||||||
|
.table-container {
|
||||||
|
min-width: 80vw; /* 设置最小宽度为视窗宽度的80% */
|
||||||
|
min-height: 80vh; /* 设置最小高度为视窗高度的80% */
|
||||||
|
/*display: flex;*/
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-container table {
|
||||||
|
width: 100%;
|
||||||
|
/*height: 100%;*/
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body style="font-family: 'Noto Sans SC Regular',serif">
|
||||||
|
<!--Main Navigation-->
|
||||||
|
<header>
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-light bg-light" style="z-index: 1;min-height: 58.59px">
|
||||||
|
<div class="container">
|
||||||
|
<button class="navbar-toggler" type="button" data-mdb-toggle="collapse"
|
||||||
|
data-mdb-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
|
||||||
|
aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<i class="fas fa-bars"></i>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||||
|
<a class="navbar-brand mt-2 mt-lg-0" href="#">
|
||||||
|
<i class="fas fa-chalkboard-user me-2"></i>
|
||||||
|
教务管理系统
|
||||||
|
</a>
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link active" aria-current="page" href="/dashboard">首页</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown1" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
学生管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown1">
|
||||||
|
<li><a class="dropdown-item" href="/student/all">学生信息显示</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/student/queryinfo">学生信息查询</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/student/modstep1">学生信息修改(旧)</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/student/infomodv2">学生信息修改</a></li>
|
||||||
|
<li>
|
||||||
|
<hr class="dropdown-divider" />
|
||||||
|
</li>
|
||||||
|
<li><a class="dropdown-item" href="/score/all">成绩查看</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/score/infomodv2">成绩管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown2" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
教师管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown2">
|
||||||
|
<li><a class="dropdown-item" href="/teacher/manage">教师信息管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown3" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
课程管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown3">
|
||||||
|
<li><a class="dropdown-item" href="/course/all">课程查看</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/course/infomodv2">课程管理</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown4" role="button"
|
||||||
|
data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
系统管理
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown4">
|
||||||
|
<li><a class="dropdown-item" href="/person/settings">个人设定</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/system/settings">系统设定</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/user/usermanage">用户管理</a></li>
|
||||||
|
<%-- <li><a class="dropdown-item" href="#">日志管理</a></li>--%>
|
||||||
|
<li><a class="dropdown-item" href="#">版本信息</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="dropdown">
|
||||||
|
<a class="dropdown-toggle d-flex align-items-center hidden-arrow" href="#"
|
||||||
|
id="navbarDropdownMenuAvatar" role="button" data-mdb-toggle="dropdown" aria-expanded="false">
|
||||||
|
<i class="fas fa-circle-user fa-lg me-1"></i>
|
||||||
|
${username}
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdownMenuAvatar">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="${pageContext.request.contextPath}/logout">登出</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<!--Main Navigation-->
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
<main>
|
||||||
|
<div class="bg-image shadow-2-strong vh-100"
|
||||||
|
style="background-image: url('${pageContext.request.contextPath}/resources/img/jason-blackeye-nyL-rzwP-Mk-unsplash.jpg'); margin-top: -58.59px;">
|
||||||
|
<div class="mask d-flex align-items-center h-100" style="background-color: hsla(0, 0%, 100%, 0.5);">
|
||||||
|
<div class="container d-flex justify-content-center">
|
||||||
|
<button type="button" class="btn btn-primary" onclick="function goBack() {
|
||||||
|
window.history.back(); //返回上一页
|
||||||
|
}
|
||||||
|
goBack()">返回
|
||||||
|
</button>
|
||||||
|
<div class="table-container rounded-4 shadow-3-strong"
|
||||||
|
style="background-color: rgba(255,255,255,0.9); overflow-y: auto; max-height: 400px;">
|
||||||
|
<table class="table table-striped table-hover border-primary">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th scope="col">ID</th>
|
||||||
|
<th scope="col">姓名</th>
|
||||||
|
<th scope="col">性别</th>
|
||||||
|
<th scope="col">出生日期</th>
|
||||||
|
<th scope="col">联系方式</th>
|
||||||
|
<th scope="col">班级</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:forEach var="student" items="${students}">
|
||||||
|
<tr>
|
||||||
|
<td>${student.id}</td>
|
||||||
|
<td>${student.name}</td>
|
||||||
|
<td>${student.sex}</td>
|
||||||
|
<td>${student.birthday}</td>
|
||||||
|
<td>${student.phone}</td>
|
||||||
|
<td>${student.classes}</td>
|
||||||
|
</tr>
|
||||||
|
</c:forEach>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<!--Main layout-->
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<footer class="bg-link text-center text-lg-start ">
|
||||||
|
</footer>
|
||||||
|
<!-- Footer -->
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/mdb.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
Reference in New Issue
Block a user