You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
text1/web/WEB-INF/admin/allStudentOptionalCourse.jsp

105 lines
11 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!-- 以上两行是JSP页面相关指令
第一行用于设置该JSP页面的内容类型为text/html即HTML格式页面同时指定字符编码为UTF-8表明页面使用Java语言来处理相关逻辑。
第二行引入了JSTLJavaServer Pages Standard Tag Library核心标签库定义前缀为“c”方便后续在页面中使用JSTL提供的各类标签进行动态数据处理比如循环遍历、条件判断等操作 -->
<html>
<head>
<title>可选课程</title>
<!-- 设置HTML页面的标题为“可选课程”此标题会显示在浏览器的标题栏让用户明确该页面的主要功能 -->
<link rel="stylesheet" href="./css/layui.css">
<!-- 引入layui框架的样式表文件通过相对路径从当前页面所在目录下的css文件夹中查找应用layui框架提供的样式用于页面布局、组件美化等使页面呈现layui框架特有的外观风格 -->
<link rel="stylesheet" href="./css/style.css">
<!-- 引入自定义的样式表文件style.css同样采用相对路径引用目的是添加符合特定需求的个性化页面样式对页面显示效果做进一步定制 -->
<script src="./layui.js"></script>
<!-- 引入layui框架的JavaScript脚本文件从当前页面所在目录获取该文件layui的JavaScript脚本为页面提供众多交互功能以及各种组件支持例如实现菜单交互、页面元素动态展示等功能 -->
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<!-- 从CDN内容分发网络引入jQuery库的最小化版本jQuery是常用的JavaScript库能简化页面中对DOM元素的操作、事件处理以及实现各种动画效果等方便开发人员编写JavaScript代码实现页面交互逻辑 -->
</head>
<body class="layui-layout-body" style="background-color: #F2F2F2">
<!-- 为页面主体body设置类名“layui-layout-body”同时将背景颜色设定为浅灰色#F2F2F2该类名通常与layui框架的布局样式相关联按照其框架规范来构建页面整体外观 -->
<jsp:include page="/filterLogin.jsp"></jsp:include>
<!-- 通过JSP的include指令包含名为filterLogin.jsp的页面内容一般这个页面用于处理用户登录相关的验证逻辑或者展示登录相关的界面元素比如登录表单等以此确保只有登录后的用户能够访问后续页面内容 -->
<jsp:include page="/WEB-INF/admin/aHeader.jsp"></jsp:include>
<!-- 包含位于WEB-INF/admin目录下的aHeader.jsp页面通常用于构建页面的头部区域可能包含如网站logo、导航栏等常见的头部元素起到统一页面头部布局的作用 -->
<jsp:include page="/WEB-INF/admin/adminNav.jsp"></jsp:include>
<!-- 再次使用JSP的include指令包含WEB-INF/admin目录下的adminNav.jsp页面此页面一般用来展示管理员端特有的导航菜单内容便于用户在不同功能模块间进行切换操作 -->
<div class="layui-layout layui-layout-admin">
<!-- 创建一个div元素并赋予其两个类名“layui-layout”和“layui-layout-admin”这是layui框架中用于定义页面整体布局结构的特定类名遵循layui框架的布局规范来划分页面不同区域例如头部、主体、侧边栏等具体根据框架设定 -->
<div class="layui-body">
<!-- 在上述布局div内部再创建一个div元素类名为“layui-body”在layui框架里该区域通常用于承载页面的主要内容比如展示各类业务数据、操作按钮等 -->
<!-- 内容主体区域 -->
<div style="padding: 15px;">
<!-- 创建一个div元素并通过内联样式设置其四周内边距为15px这样做主要是为了对内部元素进行排版使页面内容看起来更规整避免显得过于紧凑或松散 -->
<span class="layui-breadcrumb">
<a href="">管理员</a>
<a href="">选课信息管理</a>
<a><cite>可选课程</cite></a>
</span>
<!-- 创建一个layui框架提供的面包屑导航组件通过一系列超链接a标签展示当前页面在整个系统中的层级路径这里展示了从“管理员”进入“选课信息管理”再到“可选课程”页面但目前超链接的href属性大多为空后续可能需要完善具体跳转地址以实现页面导航功能 -->
<span style="color: red;margin-right: 100px;float: right;">${select_msg}</span>
<!-- 创建一个<span>标签设置文本颜色为红色通过右浮动float: right使其靠右显示并设置右边距为100px内部通过EL表达式显示名为“select_msg”的变量的值可能用于在页面上显示一些与可选课程操作相关的提示信息比如课程删除成功或失败等消息 -->
<table class="layui-table" lay-filter="test">
<!-- 创建一个layui框架的表格组件设置名为“test”的过滤器该过滤器可在后续JavaScript代码中用于配置表格相关交互功能例如实现表格行点击事件、数据筛选、排序等操作 -->
<thead>
<tr>
<th>ID</th>
<th>课程号</th>
<th>课程名</th>
<th>课程简介</th>
<th>教师号</th>
<th>教师姓名</th>
<th>操作</th>
<!-- 定义表格头部的列标题分别列出要展示的可选课程相关的各个字段如序号ID、课程号、课程名、课程简介、教师号、教师姓名以及操作用于进行删除等相关操作 -->
</tr>
</thead>
<c:forEach items="${optionalcourses}" var="optionalcourse" varStatus="s">
<!-- 使用JSTL的forEach标签进行循环遍历操作循环的对象是名为“optionalcourses”的数据集合通常是从后端传递过来的可选课程信息列表每次循环将当前元素赋值给变量“optionalcourse”同时利用“varStatus”获取循环状态信息如当前循环次数等并赋值给变量“s” -->
<tr>
<td>${s.count}</td>
<td>${optionalcourse.c_id}</td>
<td>${optionalcourse.c_name}</td>
<td>${optionalcourse.c_info}</td>
<td>${optionalcourse.t_id}</td>
<td>${optionalcourse.t_name}</td>
<td><a class="layui-btn layui-btn-danger" href="javascript:deleteCourse(${optionalcourse.c_id});">删除</a></td>
<!-- 在表格的每一行中通过EL表达式Expression Language如${s.count}等)分别展示对应的数据:
先展示序号(通过${s.count}表示当前循环次数),然后依次展示课程号、课程名、课程简介、教师号、教师姓名等具体信息;
最后一列创建一个超链接a标签应用layui框架的危险样式按钮类layui-btn layui-btn-danger表示红色警示样式按钮设置href属性为调用名为“deleteCourse”的JavaScript函数并传递当前课程的ID通过EL表达式获取当前课程对象中的课程ID即${optionalcourse.c_id})作为参数,用于实现删除当前行对应的课程信息的功能 -->
</tr>
</c:forEach>
</table>
<jsp:include page="/footer.jsp"></jsp:include>
<!-- 包含名为footer.jsp的页面一般此页面用于展示页面底部的一些通用信息比如版权声明、网站相关链接、联系方式等内容 -->
</div>
</div>
</div>
<script type="text/javascript">
$("#nav li:nth-child(1) dl dd:nth-child(2)").addClass("layui-this");
// 使用jQuery选择器选中页面中id为“nav”的元素下的第1个子元素li下的dl元素下的第2个dd元素并为其添加类名“layui-this”。在layui框架中添加这个类名通常意味着将对应的导航菜单项标记为当前选中状态使其呈现特定的样式比如改变颜色、加粗等以此表明当前所在页面功能模块对应的菜单选项
$("#nav li:nth-child(1)").addClass("layui-nav-itemed");
// 同样使用jQuery选择器选中页面中id为“nav”的元素下的第1个子元素li并为其添加类名“layui-nav-itemed”。在layui框架里这个类名可能用于控制导航菜单的展开或折叠状态让对应的菜单层级结构展示相应的效果方便用户查看相关的子菜单
</script>
<script>
//JavaScript代码区域
layui.use('element', function(){
var element = layui.element;
element.init();
// 使用layui框架的element模块调用其init方法进行初始化操作。在layui框架中element模块提供了很多页面元素交互相关的功能例如实现页面布局动态切换、菜单展开收起等交互效果通过调用init方法可以激活这些功能确保页面上基于element模块构建的各种UI组件能够正常工作
});
</script>
<script>
function deleteCourse(c_id) {
if (confirm("你确定删除该学生吗?")) {
location.href = "${pageContext.request.contextPath}/doDeleteSelectCourseServlet?cid=" + c_id;
// 定义一个名为deleteCourse的函数接收课程的IDc_id作为参数。这里函数名虽然是deleteCourse暗示删除课程但函数内部确认提示文字是“你确定删除该学生吗”可能存在文本错误正常应该提示“你确定删除该课程吗”。
// 在函数内部通过JavaScript的confirm函数弹出一个确认框询问用户是否确定要执行删除操作当前文本提示的是删除学生应为删除课程。当用户点击确定即confirm函数返回true使用location.href属性将页面重定向到名为“doDeleteSelectCourseServlet”的Servlet并通过URL拼接的方式传递要删除的课程的ID参数从而触发后端对应的删除课程信息的逻辑
}
}
</script>
</body>
</html>