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/updateStudent.jsp

221 lines
21 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提供的各类标签例如用于循环遍历、条件判断等操作的标签方便在JSP页面中进行动态数据处理 -->
<html>
<head>
<title>修改学生信息</title>
<!-- 设置当前HTML页面的标题为“修改学生信息”此标题会显示在浏览器的标题栏中让用户直观知晓页面的主要功能 -->
<link rel="stylesheet" href="./css/layui.css">
<!-- 引入layui框架的样式表文件通过相对路径从当前页面所在目录下的css文件夹中查找来应用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是常用的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属性为空可能后续需完善具体跳转地址以实现页面导航功能 -->
<form class="layui-form" action="${pageContext.request.contextPath}/updateStudentInfoServlet" style="padding-top: 50px" method="post">
<!-- 创建一个layui框架的表单form设置其提交的目标地址为名为updateStudentInfoServlet的Servlet通过EL表达式动态获取上下文路径拼接而成通过内联样式设置顶部内边距为50px提交方式为POST用于收集用户输入的修改后的学生信息并提交给后端进行信息更新操作 -->
<div class="layui-form-item">
<!-- 创建一个layui框架下表单项目form-item的div容器layui框架通常会依据这个结构来对内部的表单元素进行布局和样式处理 -->
<label class="layui-form-label">学号</label>
<!-- 创建一个表单标签label元素用于标识后面的输入框对应的含义这里显示为“学号” -->
<div class="layui-input-block">
<!-- 创建一个用于放置输入框的div容器在layui框架的表单布局里控制输入框的显示样式 -->
<input type="text" readonly="readonly" name="student-id" value="${student.s_id}" autocomplete="off" class="layui-input">
<!-- 创建一个文本输入框input元素类型为文本type: text设置为只读readonly="readonly"名称为“student-id”其值通过EL表达式从名为“student”的对象中获取可能是从后台查询出当前要修改信息的学生的学号进行回显关闭自动完成功能autocomplete="off"并应用layui框架的输入框样式类layui-input这里用于展示学号但不允许用户修改 -->
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">学院</label>
<div class="layui-input-block">
<select name="selectCollege">
<!-- 创建一个下拉选择框select元素名称为“selectCollege”用于让用户选择学生所属的学院 -->
<option value="${student.s_college}" selected>${student.s_college}</option>
<!-- 创建一个默认选中的选项option其值和显示文本都通过EL表达式获取当前学生所属学院信息进行回显设置为默认选中selected表示当前学生已有的学院信息 -->
<c:forEach items="${collegeLists}" var="collegeList">
<option value="${collegeList.college}">${collegeList.college}</option>
<!-- 使用JSTL的forEach标签进行循环遍历操作循环的对象是名为“collegeLists”的数据集合通常是从后端获取的所有学院信息列表每次循环将当前元素赋值给变量“collegeList”并创建一个选项元素其值和显示文本都设置为当前学院信息用于展示可选择的其他学院选项 -->
</c:forEach>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">系别</label>
<div class="layui-input-block">
<select name="selectDepartment" lay-search>
<!-- 创建一个下拉选择框名称为“selectDepartment”并设置了lay-search属性在layui框架中可能用于开启搜索功能方便在选项较多时快速查找用于让用户选择学生所属的系别 -->
<option value="${student.s_department}" selected>${student.s_department}</option>
<!-- 创建一个默认选中的选项通过EL表达式获取当前学生所属系别信息进行回显并设置为默认选中展示当前学生已有的系别 -->
<c:forEach items="${departmentLists}" var="departmentList">
<option>${departmentList.department}</option>
<!-- 同样使用forEach标签循环遍历名为“departmentLists”的系别信息集合每次循环创建一个选项元素显示文本为当前系别信息用于展示可选择的其他系别选项 -->
</c:forEach>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">班级</label>
<div class="layui-input-block">
<select name="selectClass" lay-search>
<!-- 创建一个下拉选择框名称为“selectClass”设置lay-search属性用于让用户选择学生所在的班级 -->
<option value="${student.s_class}" selected>${student.s_class}</option>
<!-- 创建一个默认选中的选项通过EL表达式获取当前学生所在班级信息进行回显并设置为默认选中展示当前学生已有的班级 -->
<c:forEach items="${classLists}" var="classList">
<option>${classList.cclass}</option>
<!-- 使用forEach标签循环遍历名为“classLists”的班级信息集合每次循环创建一个选项元素显示文本为当前班级信息用于展示可选择的其他班级选项 -->
</c:forEach>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">姓名</label>
<div class="layui-input-block">
<input type="text" name="student-name" id="student-name" value="${student.s_name}" placeholder="" autocomplete="off" class="layui-input">
<!-- 创建一个文本输入框类型为文本名称为“student-name”设置了id为“student-name”方便后续通过JavaScript操作该元素其值通过EL表达式获取当前学生姓名信息进行回显关闭自动完成功能用于让用户修改学生的姓名信息 -->
</div>
</div>
<div class="layui-form-item">
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">性别</label>
<div class="layui-input-block">
<input type="radio" name="student-sex" id="idsex" value="男" title="男">
<input type="radio" name="student-sex" id="idsex2" value="女" title="女">
<!-- 创建两个单选按钮input类型为radio它们的名称都为“student-sex”表示属于同一组单选选项同一组单选按钮的名称要相同分别设置不同的id、值和标题属性用于让用户选择学生的性别 -->
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">年龄</label>
<div class="layui-input-block">
<input type="text" name="student-age" id="student-age" value="${student.s_age}" placeholder="" autocomplete="off" class="layui-input">
<!-- 创建一个文本输入框用于输入学生的年龄信息名称为“student-age”通过EL表达式回显当前学生年龄关闭自动完成功能 -->
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">电话</label>
<div class="layui-input-block">
<input type="text" name="student-phone" id="student-phone" value="${student.s_phone}" placeholder="" autocomplete="off" class="layui-input">
<!-- 创建一个文本输入框用于输入学生的电话号码信息名称为“student-phone”回显当前学生电话号码关闭自动完成功能 -->
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">邮箱</label>
<div class="layui-input-block">
<input type="text" name="student-email" id="student-email" value="${student.s_email}" placeholder="" autocomplete="off" class="layui-input">
<!-- 创建一个文本输入框用于输入学生的邮箱信息名称为“student-email”回显当前学生邮箱地址关闭自动完成功能 -->
</div>
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">城市</label>
<div class="layui-input-block">
<input type="text" name="student-address" id="student-address" value="${student.s_address}" placeholder="请输入你所在的省市" autocomplete="off" class="layui-input">
<!-- 创建一个文本输入框用于输入学生所在城市信息名称为“student-address”回显当前学生城市信息设置了提示性的占位符placeholder关闭自动完成功能 -->
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="formDemo">修改</button>
<!-- 创建一个提交按钮button应用layui框架的按钮样式类layui-btn设置其为可提交表单lay-submit并通过lay-filter属性设置一个名为“formDemo”的过滤器点击该按钮会触发表单提交操作将用户修改后的学生信息发送到指定的Servlet -->
<button class="layui-btn layui-btn-primary" id="inforeset">重置</button>
<!-- 创建一个按钮应用layui框架的主要样式类layui-btn layui-btn-primary表示基础样式按钮设置id为“inforeset”用于后续绑定JavaScript事件实现重置表单的功能 -->
<span style="padding-left: 20px;">${update_msg}</span>
<!-- 通过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(2) dl dd:nth-child(2)").addClass("layui-this");
// 使用jQuery选择器选中页面中id为“nav”的元素下的第2个子元素li下的dl元素下的第2个dd元素并为其添加类名“layui-this”在layui框架中添加这个类名通常意味着将对应的导航菜单项标记为当前选中状态使其呈现特定的样式如改变颜色、加粗等以此表明当前所在页面功能模块对应的菜单选项
$("#nav li:nth-child(2)").addClass("layui-nav-itemed");
// 同样用jQuery选择器选中页面中id为“nav”的元素下的第2个子元素li并为其添加类名“layui-nav-itemed”在layui框架里这个类名可能用于控制导航菜单的展开或折叠状态让对应的菜单层级结构展示相应效果方便用户查看相关子菜单
$("#hidden-update").removeAttr("hidden");
// 通过jQuery选择器选中id为“hidden-update”的元素可能是一个隐藏的元素具体要看页面其他部分的定义并移除其“hidden”属性使其变为可见状态如果原本是隐藏的话不过这里不清楚“hidden-update”元素具体用途可能与页面特定功能相关
</script>
<script>
//JavaScript代码区域
layui.use('element', function(){
var element = layui.element;
element.init();
// 使用layui框架的element模块调用其init方法进行初始化操作。在layui框架中element模块提供了很多页面元素交互相关的功能例如实现页面布局动态切换、菜单展开收起等交互效果通过调用init方法可激活这些功能确保页面上基于element模块构建的各种UI组件能正常工作
});
</script>
<script>
//Demo
layui.use('form', function(){
// 使用layui框架的form模块后续可以在这个回调函数内部编写与表单相关的交互逻辑代码不过目前这里没有具体内容可能是预留的用于进一步开发表单验证、提交等相关功能的地方
});
</script>
<script>
var sex = "${student.s_sex}";
if (sex == '男') {
$("#idsex").attr("checked","checked");
$("#idsex2").removeAttr("checked");
// 通过EL表达式获取名为“student”的对象中的学生性别信息s_sex赋值给变量sex然后进行条件判断如果性别是“男”则使用jQuery的attr方法为id为“idsex”的单选按钮即代表男性的单选按钮设置“checked”属性为“checked”表示选中该按钮同时移除另一个代表女性的单选按钮id为“idsex2”的“checked”属性确保只有代表“男”性的单选按钮处于选中状态实现根据已有学生信息回显性别选项的功能 -->
} else if (sex == '女') {
$("#idsex2").attr("checked","checked");
$("#idsex").removeAttr("checked");
// 如果性别是“女”则使用jQuery的attr方法为id为“idsex2”的单选按钮即代表女性的单选按钮设置“checked”属性为“checked”表示选中该按钮同时移除代表男性的单选按钮id为“idsex”的“checked”属性使代表“女”性的单选按钮处于选中状态同样是为了依据已有学生信息准确回显性别选项 -->
} else {
$("#idsex").removeAttr("checked");
$("#idsex2").removeAttr("checked");
// 如果学生性别既不是“男”也不是“女”可能是数据异常等情况则移除两个单选按钮“idsex”和“idsex2”的“checked”属性也就是让两个单选按钮都不处于选中状态保证表单的初始状态在这种特殊情况下的合理性
}
</script>
<script type="text/javascript">
$(function () {
$('#inforeset').bind('click', function () {
$("#idsex").removeAttr("checked");
$("#idsex2").removeAttr("checked");
$("#student-name").val("");
$("#student-age").val("");
$("#student-phone").val("");
$("#student-email").val("");
$("#student-address").val("");
alert("已重置!");
// 这是一个jQuery的文档就绪函数当页面的DOM结构加载完成后会执行内部的代码。
// 为id为“inforeset”的元素也就是前面提到的“重置”按钮绑定点击事件处理函数。
// 在点击事件处理函数内部首先移除代表性别单选按钮“idsex”和“idsex2”的“checked”属性使其都不被选中然后将各个输入框“student-name”“student-age”“student-phone”“student-email”“student-address”的值设置为空字符串达到清空用户输入内容的效果最后通过JavaScript的alert函数弹出一个提示框显示“已重置”的提示信息告知用户表单已被重置。
});
});
</script>
</body>
</html>