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.

162 lines
18 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 language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%
// 获取当前项目的上下文路径,后续用于构建资源访问的完整路径,比如引用样式表、脚本文件、图片等资源时会基于此路径来定位。
String path = request.getContextPath();
// 构建项目的基础路径包含协议如http或https、服务器名称、服务器端口以及上下文路径用于准确地指向项目内的各种资源。
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<!DOCTYPE html>
<html>
<head>
<!-- 设置页面的字符编码为UTF-8确保页面能正确显示各种字符避免乱码问题。 -->
<meta charset="utf-8">
<!-- 定义页面在不同浏览器引擎下的渲染模式指定了webkit常用于Chrome、Safari等浏览器、ie-comp兼容IE的一些模式、ie-stand标准IE模式等多种模式以增强页面在各类浏览器中的兼容性。 -->
<meta name="renderer" content="webkit|ie-comp|ie-stand">
<!-- 强制让页面以IE的最高版本模式或者Chrome浏览器的模式渲染有助于解决IE浏览器中的兼容性问题。 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<!-- 设置页面视口viewport相关属性规定页面宽度与设备宽度相等初始缩放比例、最小缩放比例和最大缩放比例都设为1.0,同时禁止用户手动缩放页面,使得页面在移动设备上能有较好的展示效果和布局呈现。 -->
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
<!-- 禁止浏览器对页面进行缓存,保证每次访问页面时都能获取到最新的内容,常用于页面内容动态更新频繁的场景。 -->
<meta http-equiv="Cache-Control" content="no-siteapp" />
<!-- 条件注释当浏览器版本低于IE9时引入html5shiv.js和respond.min.js这两个脚本文件它们的作用是让低版本的IE浏览器IE8及以下能够支持HTML5标签和CSS3的媒体查询特性以提升页面在旧版IE中的兼容性和显示效果。 -->
<if lt IE 9>
<script type="text/javascript" src="lib/html5shiv.js"></script>
<script type="text/javascript" src="lib/respond.min.js"></script>
<![endif]>
<!-- 引入H-ui框架的核心样式表文件用于构建页面的基本样式布局提供了一些通用的页面样式规则如字体、颜色、间距等方面的设置。 -->
<link rel="stylesheet" type="text/css" href="<%=basePath%>static/h-ui/css/H-ui.min.css" />
<!-- 引入H-ui.admin框架的样式表文件主要针对后台管理系统页面进行样式定制包含了更多符合后台管理界面风格和操作需求的样式设置比如表格样式、按钮样式等。 -->
<link rel="stylesheet" type="text/css" href="<%=basePath%>static/h-ui.admin/css/H-ui.admin.css" />
<!-- 引入Hui-iconfont图标字体库的样式表文件通过使用图标字体可以方便地在页面中展示各种图标并且能够根据需要灵活调整图标大小、颜色等样式属性提升页面的可视化效果和交互性。 -->
<link rel="stylesheet" type="text/css" href="<%=basePath%>lib/Hui-iconfont/1.0.8/iconfont.css" />
<!-- 引入H-ui.admin框架的默认皮肤样式表文件用于设置页面的整体皮肤风格id属性为"skin"方便后续通过JavaScript等方式实现动态切换皮肤的功能满足不同用户对页面外观的个性化需求。 -->
<link rel="stylesheet" type="text/css" href="<%=basePath%>static/h-ui.admin/skin/default/skin.css" id="skin" />
<!-- 引入H-ui.admin框架的额外样式表文件可能包含一些自定义的样式规则用于进一步细化和调整页面的外观显示补充或覆盖框架默认样式中的一些设置。 -->
<link rel="stylesheet" type="text/css" href="<%=basePath%>static/h-ui.admin/css/style.css" />
<!-- 条件注释当浏览器版本为IE6时引入DD_belatedPNG_0.0.8a-min.js脚本文件并执行相应的函数来修复IE6下PNG图片透明等显示问题确保页面中的PNG图片能正常显示。 -->
<if IE 6>
<script type="text/javascript" src="lib/DD_belatedPNG_0.0.8a-min.js" ></script>
<script>DD_belatedPNG.fix('*');</script>
<![endif]>
<title>会员列表</title>
</head>
<body>
<!-- 使用nav标签创建一个面包屑导航栏用于清晰展示当前页面在整个网站结构中的位置路径方便用户进行页面导航以及了解所处层级关系通过图标字体Hui-iconfont展示首页图标并使用<span>标签结合特定样式来分隔不同层级的名称同时提供一个刷新按钮通过JavaScript实现页面刷新功能。 -->
<nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页 <span class="c-gray en">&gt;</span> 会员中心 <span class="c-gray en">&gt;</span> 会员列表 <a class="btn btn-success radius r" style="line-height:1.6em;margin-top:3px" href="javascript:location.replace(location.href);" title="刷新" ><i class="Hui-iconfont">&#xe68f;</i></a></nav>
<!-- 创建一个页面容器page-container用于对页面内的相关内容进行分组和布局管理方便统一设置样式以及整体的页面结构组织常见于基于特定框架开发的页面中有助于实现模块化和规范化的页面设计。 -->
<div class="page-container">
<!-- 创建一个包含多个类名的div元素用于设置布局样式其中"cl"类可能用于控制列相关的布局样式(具体取决于所使用框架的定义),"pd-5"可能表示设置内边距为5单位可能是像素等依框架而定"bg-1"和"bk-gray"大概率是用于设置背景颜色相关的样式,"mt-20"则明确设置了上边距为20px使得该区域在页面中有合适的间距和视觉呈现效果。 -->
<div class="cl pd-5 bg-1 bk-gray mt-20">
<!-- 创建一个位于左侧的span元素用于放置添加会员的按钮通过使用a标签模拟按钮样式并添加多个类名来设置按钮的外观样式如btn btn-primary radius表示这是一个主要的、具有特定样式的圆角按钮同时利用data-title属性设置按钮的提示信息可在一些交互场景下显示比如鼠标悬停时的提示框内容data-href和href属性都指向添加会员的JSP页面地址通过basePath构建完整路径点击该按钮可跳转到相应的添加会员页面。 -->
<span class="l">
<a class="btn btn-primary radius" data-title="添加车次" data-href="<%=basePath%>pages/admin/right/addMember.jsp" href="<%=basePath%>pages/admin/right/addMember.jsp"><i class="Hui-iconfont">&#xe600;</i> 添加会员</a>
</span>
<!-- 创建一个位于右侧的span元素用于显示会员数据的总数信息通过使用JSTL表达式${memberList.size()}获取名为memberList的集合可能是从后台传递过来的会员信息列表的元素个数并展示给用户让用户了解当前会员数据的总量情况。 -->
<span class="r">共有数据:<strong>${memberList.size()}</strong> 条</span>
</div>
<!-- 创建一个距离顶部20px的div元素用于放置展示会员信息的表格确保表格在页面中有合适的布局位置避免与其他元素过于紧凑或重叠。 -->
<div class="mt-20">
<!-- 创建一个HTML表格table并为其添加了多个类名来设置表格的样式特性例如"table-border"表示表格有边框,"table-bordered"进一步细化边框样式,"table-bg"可能用于设置表格的背景颜色或背景样式,"table-hover"实现鼠标悬停在表格行上时的交互效果(如改变背景色等),"table-sort"用于标识该表格支持排序功能后续通过JavaScript代码实现具体排序逻辑"table-responsive"使表格具备响应式布局能力,能在不同屏幕尺寸下自适应显示,提升用户体验。 -->
<table class="table table-border table-bordered table-bg table-hover table-sort table-responsive">
<!-- 创建表头thead部分用于定义表格每列的标题内容和样式里面的每一个<tr>标签代表一行标题,而<th>标签则代表每列的具体标题单元格通过设置width属性来指定各列的宽度使表格布局更加规整、清晰。 -->
<thead>
<tr class="text-c">
<!-- 定义序号列设置宽度为40px用于展示会员信息在列表中的顺序编号方便用户查看和定位具体会员记录。 -->
<th width="40">序号</th>
<!-- 定义会员ID列宽度为60px用于展示每个会员在系统中的唯一标识编号便于后台管理和数据关联操作等。 -->
<th width="60">会员ID</th>
<!-- 定义用户名列宽度为120px用于展示会员登录所使用的用户名信息是识别会员身份的重要依据之一。 -->
<th width="120">用户名</th>
<!-- 定义密码列宽度为120px用于展示会员账号对应的密码信息实际应用中可能会进行加密处理这里仅为展示逻辑出于安全考虑一般不会直接明文显示密码此处只是示例表格结构中的一部分。 -->
<th width="80">密码</th>
<!-- 定义个人信息列宽度为80px此处通过放置一个链接a标签来引导用户查看更详细的个人信息内容链接指向相应的ServletGetPmemberByMemberIdServlet并传递会员ID作为参数以获取并展示该会员的详细个人信息虽然当前代码中图片显示部分被注释掉了但可能原本有通过图片等方式引导查看的设计意图。 -->
<th width="80">个人信息</th>
<!-- 定义会员状态列宽度为40px通过使用JSTL的<c:if>标签根据会员的状态值ifUse属性来动态显示不同的状态文本如值为1时显示"在线"并设置颜色为绿色以突出显示值为0时显示"离线",直观地告知用户会员当前的在线情况。 -->
<th width="40">会员状态</th>
<!-- 定义注册时间列宽度为120px使用JSTL的<fmt:formatDate>标签对会员的注册时间registerTime属性进行格式化处理按照"yyyy-MM-dd HH:mm:ss"的格式展示给用户,使其呈现为清晰易读的日期时间格式。 -->
<th width="120">注册时间</th>
<!-- 定义登录时间列宽度同样为120px也是利用<fmt:formatDate>标签对会员的登录时间logintimes属性进行格式化输出以便用户了解会员最近一次登录的具体时间信息。 -->
<th width="120">登录时间</th>
<!-- 定义操作列宽度为120px用于放置针对会员信息进行操作的链接按钮如编辑和删除操作通过图标字体Hui-iconfont展示相应图标并设置链接指向对应的ServletUpdateMemberAdminServlet用于编辑、DeleteMemberAdminServlet用于删除同时传递会员ID作为参数实现对具体会员记录的相应操作功能每个链接都设置了无文本装饰样式text-decoration:none以及左侧外边距ml-5来优化外观和布局。 -->
<th width="120">操作</th>
</tr>
</thead>
<!-- 创建表体tbody部分用于填充表格的具体数据行每一行对应一条会员记录信息通过JSTL的<c:forEach>标签循环遍历名为memberList的会员信息集合将每个会员对象依次取出进行数据展示。 -->
<tbody>
<c:forEach items="${memberList}" var="member" varStatus="status">
<tr class="text-c">
<!-- 在表格单元格中展示当前会员记录的序号通过循环状态的索引从0开始加1来计算得到确保序号从1开始依次递增方便用户查看和计数。 -->
<td>${status.index + 1}</td>
<!-- 在表格单元格中展示当前会员的会员ID直接从member对象中获取memberId属性值进行展示该ID是会员在系统中的唯一标识用于各种数据关联和操作定位等用途。 -->
<td>${member.memberId}</td>
<td>${member.userName}</td>
<td>${member.password}</td>
<td>
<!-- 创建一个链接a标签用于引导用户查看会员的详细个人信息链接的href属性指向GetPmemberByMemberIdServlet并传递会员ID作为参数通过JSTL表达式嵌入memberId的值点击该链接可跳转到相应页面获取并展示更详细的个人信息内容虽然当前代码中图片显示相关部分<img>标签)被注释掉了,但可能原本有通过图片等可视化元素引导点击查看的设计思路,现在仅显示文本"点击查看"作为替代提示。 -->
<a href="<%=basePath%>GetPmemberByMemberIdServlet?temp=admin&memberId=${member.memberId}">
<%-- <img alt="" src="<%=basePath%>images/look.jpg"> --%>
点击查看
</a>
</td>
<!-- 使用JSTL的<c:if>条件判断标签根据会员对象中ifUse属性的值来决定显示不同的会员状态文本如果ifUse值为1表示会员处于在线状态就在表格单元格中显示绿色的"在线"字样通过设置style属性来改变文本颜色如果ifUse值为0则显示"离线"字样,表示会员当前未处于在线状态。 -->
<c:if test="${member.ifUse == 1}">
<td style="color:green">在线</td>
</c:if>
<c:if test="${member.ifUse == 0}">
<td>离线</td>
</c:if>
<td>
<!-- 使用JSTL的<fmt:formatDate>标签对会员的注册时间registerTime属性进行格式化处理按照"yyyy-MM-dd HH:mm:ss"的日期时间格式将其转换为易读的字符串形式并展示在表格单元格中,方便用户直观了解会员的注册时间信息。 -->
<fmt:formatDate value="${member.registerTime}" pattern="yyyy-MM-dd HH:mm:ss"/>
</td>
<td>
<!-- 同样使用<fmt:formatDate>标签对会员的登录时间logintimes属性进行格式化按照"yyyy-MM-dd HH:mm:ss"格式将其转换为合适的字符串展示出来,让用户知晓会员最近一次登录系统的具体时间情况。 -->
<fmt:formatDate value="${member.logintimes}" pattern="yyyy-MM-dd HH:mm:ss"/>
</td>
<td class="f-14 td-manage">
<!-- 创建一个编辑操作的链接a标签设置无文本装饰样式text-decoration:none以及左侧外边距ml-5用于优化外观布局href属性指向UpdateMemberAdminServlet并通过JSTL表达式传递当前会员的会员ID作为参数title属性设置鼠标悬停时的提示信息为"编辑"内部通过图标字体Hui-iconfont展示编辑图标点击该链接可跳转到相应页面进行会员信息的编辑操作。 -->
<a style="text-decoration:none" class="ml-5" href="<%=basePath%>UpdateMemberAdminServlet?memberId=${member.memberId}" title="编辑"><i class="Hui-iconfont">&#xe6df;</i></a>
<!-- 创建一个删除操作的链接a标签同样设置无文本装饰样式和左侧外边距href属性指向DeleteMemberAdminServlet并传递会员ID参数title属性设置鼠标悬停提示信息为"删除",通过图标字体显示删除图标,点击该链接可触发对当前会员记录的删除操作(当然,实际应用中通常会有相应的确认提示等交互逻辑来防止误操作)。 -->
<a style="text-decoration:none" class="ml-5" href="<%=basePath%>DeleteMemberAdminServlet?memberId=${member.memberId}" title="删除"><i class="Hui-iconfont">&#xe6e2;</i></a>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
<!--_footer 作为公共模版分离出去-->
<script type="text/javascript" src="<%=basePath%>lib/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="<%=basePath%>lib/layer/2.4/layer.js"></script>
<script type="text/javascript" src="<%=basePath%>static/h-ui/js/H-ui.min.js"></script>
<script type="text/javascript" src="<%=basePath%>static/h-ui.admin/js/H-ui.admin.js"></script> <!--/_footer 作为公共模版分离出去-->
<!--请在下方写此页面业务相关的脚本-->
<script type="text/javascript" src="<%=basePath%>lib/My97DatePicker/4.8/WdatePicker.js"></script>
<script type="text/javascript" src="<%=basePath%>lib/datatables/1.10.0/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="<%=basePath%>lib/laypage/1.2/laypage.js"></script>
<script type="text/javascript">
$('.table-sort').dataTable({
"aaSorting": [[ 0, "asc" ]],//默认第几个排序
"bStateSave": true,//状态保存
"pading":false,
"aoColumnDefs": [
//{"bVisible": false, "aTargets": [ 3 ]} //控制列的隐藏显示
{"orderable":false,"aTargets":[8]}// 不参与排序的列
]
});
</script>
</body>
</html>