|
|
<%@ 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语言来处理相关逻辑。
|
|
|
- 第二行引入了JSTL(JavaServer Pages Standard Tag Library)核心标签库,定义其前缀为“c”,后续就能通过这个前缀方便地使用JSTL提供的各类标签,例如用于循环遍历、条件判断等操作的标签,以此在JSP页面中实现动态数据处理 -->
|
|
|
<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框架的脚本文件能够为页面提供众多交互功能以及各种各样的组件支持,比如实现菜单的交互效果、页面元素的动态展示等功能 -->
|
|
|
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
|
|
|
<!-- 从CDN(内容分发网络)引入jQuery库的最小化版本,jQuery是在Web开发中常用的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框架的布局规范来划分页面的不同区域,例如划分出头部、主体内容区域、侧边栏等(具体的划分取决于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属性大多为空,后续可能需要完善具体的跳转地址,以便真正实现页面之间的导航功能 -->
|
|
|
<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>
|
|
|
<th>教师</th>
|
|
|
<th>分数</th>
|
|
|
<!-- 定义表格头部的列标题,分别列出了要展示的选课相关信息的各个字段,依次为序号(ID)、学号、学生姓名、课程号、课程名、课程简介、教师号、教师姓名以及课程分数等 -->
|
|
|
</tr>
|
|
|
</thead>
|
|
|
|
|
|
<c:forEach items="${selectcourses}" var="selectcourse" varStatus="s">
|
|
|
<!-- 使用JSTL的forEach标签进行循环遍历操作,循环的对象是名为“selectcourses”的数据集合(通常是从后端传递过来的已经选了课的相关信息列表),每次循环会将当前元素赋值给变量“selectcourse”,同时利用“varStatus”获取循环的状态信息(例如当前循环的次数等)并赋值给变量“s” -->
|
|
|
<tr>
|
|
|
<td>${s.count}</td>
|
|
|
<td>${selectcourse.s_id}</td>
|
|
|
<td>${selectcourse.s_name}</td>
|
|
|
<td>${selectcourse.c_id}</td>
|
|
|
<td>${selectcourse.c_name}</td>
|
|
|
<td>${selectcourse.c_info}</td>
|
|
|
<td>${selectcourse.t_id}</td>
|
|
|
<td>${selectcourse.t_name}</td>
|
|
|
<td>${selectcourse.score}</td>
|
|
|
<!-- 在表格的每一行中,通过EL表达式(Expression Language,像${s.count}等这种写法就是EL表达式)分别展示对应的选课数据:
|
|
|
- 首先展示序号(通过${s.count}表示当前循环的次数,也就是从1开始的行号)。
|
|
|
- 然后依次展示选课记录中包含的学号、学生姓名、课程号、课程名、课程简介、教师号、教师姓名以及课程分数等具体信息。 -->
|
|
|
</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(1)").addClass("layui-this");
|
|
|
// 使用jQuery选择器选中页面中id为“nav”的元素下的第1个子元素li下的dl元素下的第1个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>
|
|
|
|
|
|
</body>
|
|
|
</html> |