|
|
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
|
|
<!-- JSP页面指令,用于设置页面的相关属性:
|
|
|
- “contentType”属性指定页面内容类型为“text/html”,意味着页面以HTML格式展示内容,同时设置字符编码为“UTF-8”,这样能确保页面可以正确处理和显示各种字符(如中文等),避免出现乱码情况,保证页面内容正常展示。
|
|
|
- “language=java”表明该JSP页面内部的逻辑实现是基于Java语言的,例如可以在页面中嵌入Java代码片段来与服务器端进行交互、处理业务数据等操作。 -->
|
|
|
|
|
|
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
|
|
<!-- 引入JSTL(JavaServer Pages Standard Tag Library)核心标签库,通过设定“prefix”属性为“c”,后续在页面里就能使用以“c”开头的各种JSTL标签了。这些标签能够方便地实现诸如循环遍历集合数据、进行条件判断、将数据输出到页面等常见功能,大大增强了JSP页面在处理动态数据和展示内容方面的灵活性与便利性。 -->
|
|
|
|
|
|
<html>
|
|
|
<head>
|
|
|
<title>修改分数</title>
|
|
|
<!-- 设置HTML页面的标题,这里明确表示页面是用于“修改分数”相关操作的,该标题会显示在浏览器的标题栏中,方便用户一眼就能知晓当前页面的主题。 -->
|
|
|
<link rel="stylesheet" href="./css/layui.css">
|
|
|
<!-- 引入Layui框架的样式文件,通过相对路径“./css/layui.css”去定位对应的CSS文件,该文件中定义了一系列符合Layui框架风格的样式规则,使得页面中运用Layui框架相关的组件(例如表格、按钮、导航栏等元素)都能按照预设的样式进行展示,从而让页面呈现出统一、美观且规范的视觉效果,保持整体风格的一致性。 -->
|
|
|
<link rel="stylesheet" href="./css/style.css">
|
|
|
<!-- 引入自定义的样式文件“style.css”,开发人员可以在这个文件里根据项目的特定需求,对页面的样式进行个性化定制。例如,可以对Layui框架的部分默认样式进行覆盖,或者添加一些独特的页面布局、颜色搭配等样式设定,以便让页面更好地契合整个项目的设计风格和展示要求。 -->
|
|
|
<script src="./layui.js"></script>
|
|
|
<!-- 引入Layui框架的JavaScript核心文件,有了这个文件的引入,页面就能调用Layui框架所提供的各种JavaScript功能了。比如,可以实现弹出层的展示、对表单进行验证、处理页面元素之间的交互操作(像点击按钮触发特定的事件、动态地显示或隐藏某些元素等)等功能,通过使用Layui框架的相关API,能够为页面添加丰富多样的交互性和动态效果,进而提升用户在使用页面过程中的体验感。 -->
|
|
|
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
|
|
|
<!-- 从CDN(内容分发网络)引入jQuery库的精简版本,jQuery是一款广受欢迎且功能十分强大的JavaScript库,它极大地简化了在HTML页面中进行DOM(Document Object Model,文档对象模型)操作的复杂度,像方便地遍历HTML文档中的元素、处理各种页面事件(例如鼠标的点击、键盘的输入等事件)、创建动画效果以及实现AJAX(Asynchronous JavaScript and XML,异步的JavaScript和XML)交互等操作,都能通过使用jQuery库轻松实现,这有助于开发人员更加便捷地在页面中构建各种交互功能,进一步增强页面整体的动态交互体验。 -->
|
|
|
</head>
|
|
|
<body class="layui-layout-body" style="background-color: #F2F2F2">
|
|
|
<!-- 为页面主体设置样式类为“layui-layout-body”,同时通过内联样式设定背景颜色为“#F2F2F2”,这是按照Layui框架的样式规范来对页面主体部分的外观风格进行定义,使得页面呈现出特定的背景颜色,有助于营造出整体统一的视觉效果,并且方便后续依据Layui框架既定的布局和样式规则来组织和展示页面中的其他各种内容元素。 -->
|
|
|
<jsp:include page="/filterLogin.jsp"></jsp:include>
|
|
|
<!-- 使用JSP的“include”指令将名为“filterLogin.jsp”的页面包含进来,通常情况下,这个“filterLogin.jsp”页面主要负责处理用户登录验证相关的逻辑,比如它会判断当前访问该页面的用户是否已经成功登录到系统中,如果发现用户没有登录,那么就会引导用户跳转到登录页面进行登录操作,以此来实现对页面访问权限的有效管控,确保只有合法登录的用户才能够访问当前页面以及后续与之相关的各种功能内容,从而保障整个系统的数据安全以及业务逻辑的正常运行。 -->
|
|
|
<jsp:include page="/WEB-INF/teacher/tHeader.jsp"></jsp:include>
|
|
|
<!-- 包含名为“WEB-INF/teacher/tHeader.jsp”的页面,一般来讲,这个页面主要是用于定义教师端页面的头部区域的,在这个头部区域当中,通常会包含诸如页面的大标题、用于页面导航的导航栏、展示教师用户基本信息(例如用户名、头像等内容)等与头部相关的各种元素,通过这样的包含操作,就可以把这些头部相关的元素整合到当前页面之中,进而构建出一个完整且规范的页面头部布局结构。 -->
|
|
|
<jsp:include page="/WEB-INF/teacher/teacherNav.jsp"></jsp:include>
|
|
|
<!-- 包含名为“WEB-INF/teacher/teacherNav.jsp”的页面,大概率它的作用是用于展示教师端的导航菜单的,借助这个导航菜单,教师用户就可以方便快捷地在不同的功能模块(例如课程管理、学生管理、个人信息管理等不同的功能板块,具体的功能模块划分要取决于业务系统的整体设计需求)之间进行切换操作,实现页面功能的导航跳转,为用户提供便捷的操作入口,从而提升用户使用整个系统的便利性。 -->
|
|
|
<div class="layui-layout layui-layout-admin">
|
|
|
<!-- 创建一个基于Layui框架的布局容器,通过应用“layui-layout”和“layui-layout-admin”这两个样式类,按照Layui框架所提供的特定布局模式对页面进行布局规划,这种布局方式在后台管理系统等应用场景中是比较常用的,它有着清晰、规范的页面分区结构,能够便于合理地放置和展示页面内的各种功能内容模块,例如可以很方便地划分出侧边栏、主体内容展示区、页面底部的页脚等不同的区域。 -->
|
|
|
<div class="layui-body">
|
|
|
<!-- 在上述所创建的Layui布局容器内定义页面的主体内容区域,这个区域会依据Layui框架既定的布局规则来进行自适应显示,它主要的作用是用于承载和展示与具体业务相关的核心内容,比如下面即将呈现出来的关于“修改学生分数”相关信息的表单等内容元素,这里也就是用户在访问该页面时重点关注和进行操作的区域。 -->
|
|
|
<!-- 内容主体区域 -->
|
|
|
<div style="padding: 15px;">
|
|
|
<!-- 创建一个带有内边距的div容器,通过设置“padding: 15px;”这样的内边距样式,意味着在这个容器的四周(也就是上、下、左、右四个方向)都会留出15像素的空白空间,这样做的好处是可以让容器内部的内容在页面中展示的时候有一定的间隔,使得页面的布局更加美观、易读,也更便于对内部的各个元素进行排版布局操作,避免内容显得过于拥挤,从而提升用户查看和操作页面内容时的体验感。 -->
|
|
|
<span class="layui-breadcrumb">
|
|
|
<!-- 使用Layui框架的面包屑组件,其最主要的作用就是向用户清晰地展示当前页面的导航路径,让用户能够直观地了解当前页面在整个系统中的位置层级关系,通过面包屑组件所展示出来的路径信息,用户可以清楚地知道自己是如何一步步进入到当前这个“修改学生分数”页面的,同时也方便用户在需要的时候,能够按照这个路径进行回退或者跳转到相关的上级页面等操作,有效地提升了页面的导航便利性以及用户对整个系统结构的理解程度。 -->
|
|
|
<a href="">教师端</a>
|
|
|
<!-- 面包屑中的第一个链接,通常情况下它是指向教师端的首页或者是整个教师端功能的主要入口页面的,不过在这里暂时没有设置具体的链接地址(可能后续会根据实际情况进一步去完善它),从理论上来说,用户点击该链接是可以引导其返回教师端的核心界面的,也就是回到一个相对比较顶层的功能页面位置上。 -->
|
|
|
<a href="">课程信息</a>
|
|
|
<!-- 面包屑中的第二个链接,它所指向的是与课程信息相关的页面,这个页面可能是课程信息的总览页面或者是对课程进行分类展示的列表页面等相关页面,同样在这里暂时也没有设定具体的链接地址,一般情况下用户点击该链接就可以进入到对应的课程信息相关的界面中,进而去查看更详细的课程相关内容。 -->
|
|
|
<a><cite>修改学生分数</cite></a>
|
|
|
<!-- 面包屑中的最后一个元素,明确地显示出当前页面的具体功能是“修改学生分数”,它主要起到一个标识当前所在功能位置的作用,通常情况下这个元素是不可点击的,仅仅是作为文字提示信息展示给用户,告知用户当前所处的具体业务功能页面是什么。 -->
|
|
|
</span>
|
|
|
<form class="layui-form" action="${pageContext.request.contextPath}/updateOptionalCourseScoreServlet?cid=${c.c_id}&sid=${s.s_id}" style="padding-top: 50px" method="post">
|
|
|
<!-- 创建一个使用Layui框架样式的表单,应用“layui-form”样式类使其呈现出符合Layui框架规范的表单样式,方便进行表单元素的布局以及后续的表单验证等操作。设置顶部内边距为50px,使表单与上面的面包屑等元素有一定的垂直间隔,更加美观易读。提交方法为“post”,常用于提交较大量或需保密的数据。“action”属性通过EL表达式(Expression Language)动态设置表单提交的目标地址为“updateOptionalCourseScoreServlet”这个Servlet,并传递课程号(“cid=${c.c_id}”)和学号(“sid=${s.s_id}”)等参数,这些参数可能是当前要修改分数的学生和对应课程的相关标识,以便服务器端根据这些信息准确处理分数修改的业务逻辑。 -->
|
|
|
<div class="layui-form-item">
|
|
|
<!-- 在表单内创建Layui框架的表单项目容器,用于对单个输入项或一组相关输入项进行分组和布局,方便统一管理和设置样式,使每个输入项在页面中规范显示。 -->
|
|
|
<label class="layui-form-label">学号</label>
|
|
|
<!-- 创建表单标签,用于显示输入项对应的提示文本,这里提示用户输入的是“学号”信息,引导用户明确该输入框的用途。 -->
|
|
|
<div class="layui-input-block">
|
|
|
<!-- 创建用于放置输入框等表单控件的块级容器,按照Layui框架的布局规则,输入框等元素会在这个容器内合理显示,确保页面布局整齐,与其他表单项目区分开来。 -->
|
|
|
<input type="text" name="student-id" value="${s.s_id}" readonly="readonly" required lay-verify="required" autocomplete="off" class="layui-input">
|
|
|
<!-- 创建一个文本输入框,名称为“student-id”,通过EL表达式(Expression Language)将“s.s_id”(可能是从服务器端传递过来的学生学号值)作为初始值显示在输入框中,设置为只读(“readonly="readonly"”),意味着用户不能直接修改该输入框中的内容,设置为必填项(“required lay-verify="required"”,Layui框架中用于表单验证,确保用户提交表单时该字段有值),关闭自动完成功能(“autocomplete="off"”),应用Layui框架输入框样式类“layui-input”,用于展示学生的学号信息。 -->
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="layui-form-item">
|
|
|
<label class="layui-form-label">姓名</label>
|
|
|
<div class="layui-input-block">
|
|
|
<input type="text" name="student-name" value="${s.s_name}" readonly="readonly" required lay-verify="required" autocomplete="off" class="layui-input">
|
|
|
<!-- 与学号输入框类似,创建一个文本输入框用于展示学生姓名信息,名称为“student-name”,初始值通过EL表达式从“s.s_name”获取,设置为只读、必填项,关闭自动完成功能,应用相应样式类,用户不能修改该姓名信息。 -->
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="layui-form-item">
|
|
|
<label class="layui-form-label">课程号</label>
|
|
|
<div class="layui-input-block">
|
|
|
<input type="text" name="course-id" value="${c.c_id}" readonly="readonly" required lay-verify="required" autocomplete="off" class="layui-input">
|
|
|
<!-- 创建文本输入框展示课程号信息,名称为“course-id”,初始值从“c.c_id”获取,设置为只读、必填项,关闭自动完成功能,按框架样式规范显示,用户不可修改课程号内容。 -->
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="layui-form-item">
|
|
|
<label class="layui-form-label">课程名</label>
|
|
|
<div class="layui-input-block">
|
|
|
<input type="text" name="course-name" value="${c.c_name}" readonly="readonly" required lay-verify="required" autocomplete="off" class="layui-input">
|
|
|
<!-- 同样地,创建用于展示课程名的文本输入框,名称“course-name”,初始值来自“c.c_name”,设置只读、必填且关闭自动完成功能,按样式类展示课程名,用户无法修改。 -->
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="layui-form-item">
|
|
|
<label class="layui-form-label">课程介绍</label>
|
|
|
<div class="layui-input-block">
|
|
|
<input type="text" name="course-info" value="${c.c_info}" readonly="readonly" required lay-verify="required" autocomplete="off" class="layui-input">
|
|
|
<!-- 创建文本输入框来展示课程介绍信息,名称“course-info”,初始值取自“c.c_info”,设置为只读、必填项,关闭自动完成功能,以符合框架样式展示课程介绍内容,用户不能直接编辑。 -->
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="layui-form-item">
|
|
|
<label class="layui-form-label">学生分数</label>
|
|
|
<div class="layui-input-block">
|
|
|
<input type="text" name="student-score" value="${sc.score}" required lay-verify="required" autocomplete="off" class="layui-input">
|
|
|
<!-- 创建文本输入框用于输入学生分数,名称“student-score”,初始值通过“sc.score”(可能是之前记录的分数值)获取,设置为必填项(这里可能是因为修改分数时需要用户明确输入新分数),关闭自动完成功能,应用样式类,用户可在此修改学生的分数信息。 -->
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="layui-form-item">
|
|
|
<div class="layui-input-block">
|
|
|
<button class="layui-btn" lay-submit lay-filter="formDemo">修改</button>
|
|
|
<!-- 创建一个使用Layui框架样式的按钮,文本显示为“修改”,应用“layui-btn”样式类使其呈现出Layui框架中按钮的样式风格。设置“lay-submit”属性表示该按钮点击时会触发表单提交操作,“lay-filter”属性值为“formDemo”,用于后续结合Layui框架的表单验证等功能,为该按钮触发的提交行为绑定特定的验证逻辑或者事件处理逻辑(不过这里具体的验证或事件处理逻辑可能需要在JavaScript代码中进一步定义)。 -->
|
|
|
<span style="padding-left: 20px;">${update_msg}</span>
|
|
|
<!-- 创建一个行内的<span>元素,设置左边距为20像素,用于显示一个动态的消息内容(通过EL表达式“${update_msg}”获取,可能是服务器端返回的提示信息,比如修改分数成功或失败的提示等),向用户反馈分数修改操作的相关情况。 -->
|
|
|
</div>
|
|
|
</div>
|
|
|
</form>
|
|
|
<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(4)").addClass("layui-this");
|
|
|
// 使用jQuery选择器定位到页面中id为“nav”的元素下的第一个li元素内的dl元素中的第四个dd元素,并为其添加“layui-this”样式类。大概率是用于在导航菜单中标记当前选中的菜单项(依据页面本身的导航结构和样式设置逻辑来确定),使其呈现出被选中的视觉效果,例如改变颜色、加粗等样式变化,从而清晰地表明当前所在的功能页面对应的导航位置,方便用户直观地知晓当前所处的功能模块在整个导航体系中的位置关系。
|
|
|
$("#nav li:nth-child(1)").addClass("layui-nav-itemed");
|
|
|
// 同样利用jQuery选择器选择id为“nav”的元素 |