<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
    // 获取当前项目的上下文路径，例如在部署到服务器后，可能是项目名称对应的路径部分，后续用于构建完整的资源访问路径等。
    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的媒体查询特性 -->
    <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图片透明等显示问题 -->
    <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标签创建一个面包屑导航栏，用于显示当前页面在整个网站结构中的位置路径，方便用户进行页面导航 -->
    <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元素，用于放置添加车次的按钮 -->
            <span class="l">
                <!-- 创建一个按钮（a标签模拟按钮样式），添加了多个类用于设置按钮的样式（如btn btn-primary radius表示主要按钮、圆角样式等），data-title属性可用于设置一些提示信息（比如在弹出框等场景显示），data-href和href属性都指向添加车次的JSP页面地址（通过basePath构建完整路径），点击该按钮可跳转到添加车次页面 -->
                <a class="btn btn-primary radius" data-title="添加车次" data-href="<%=basePath%>pages/admin/right/addTrain.jsp" href="<%=basePath%>pages/admin/right/addTrain.jsp"><i class="Hui-iconfont">&#xe600;</i> 添加车次</a>
            </span>
            <!-- 创建一个右侧的span元素，用于显示数据总数信息 -->
            <span class="r">共有数据：<strong>${trainList.size()}</strong> 条</span>
        </div>
        <!-- 创建一个距离顶部20px的div，用于放置车次列表表格 -->
        <div class="mt-20">
            <!-- 创建一个HTML表格（table），并添加了多个类用于设置表格的样式，如表格有边框、边框样式、背景颜色、鼠标悬停效果、可排序以及响应式布局等特性 -->
            <table class="table table-border table-bordered table-bg table-hover table-sort table-responsive">
                <!-- 创建表头（thead）部分，用于定义表格每列的标题 -->
                <thead>
                    <tr class="text-c">
                        <!-- 定义表格列，设置列宽为80px，用于显示序号 -->
                        <th width="80">序号</th>
                        <!-- 定义表格列，设置列宽为80px，用于显示车次信息 -->
                        <th width="80">车次</th>
                        <!-- 定义表格列，设置列宽为80px，用于显示起始站信息 -->
                        <th width="80">起始站</th>
                        <!-- 定义表格列，设置列宽为80px，用于显示终点站信息 -->
                        <th width="80">终点站</th>
                        <!-- 定义表格列，设置列宽为120px，用于显示开车时间信息 -->
                        <th width="120">开车时间</th>
                        <!-- 定义表格列，设置列宽为120px，用于显示到达时间信息 -->
                        <th width="120">到达时间</th>
                        <!-- 定义表格列，设置列宽为60px，用于显示票价信息 -->
                        <th width="60">票价</th>
                        <!-- 定义表格列，设置列宽为60px，用于显示剩余座位数信息 -->
                        <th width="60">剩余座位数</th>
                        <!-- 定义表格列，设置列宽为120px，用于显示操作按钮（如编辑、删除等） -->
                        <th width="120">操作</th>
                    </tr>
                </thead>
                <!-- 创建表体（tbody）部分，用于填充表格的具体数据行 -->
                <tbody>
                    <!-- 使用JSTL的forEach标签循环遍历名为trainList的集合（可能是从后台传递过来的车次信息列表），每次循环将当前元素赋值给allTrain变量，同时通过varStatus获取循环状态（如当前索引等信息） -->
                    <c:forEach items="${trainList}" var="allTrain" varStatus="status">
                        <tr class="text-c">
                            <!-- 在表格单元格中显示当前行的序号，序号通过循环状态的索引（从0开始）加1来计算 -->
                            <td>${status.index + 1}</td>
                            <!-- 在表格单元格中显示当前车次的车次编号，通过从allTrain对象中获取trainNumber属性值来显示 -->
                            <td>${allTrain.trainNumber}</td>
                            <td>${allTrain.startStation}</td>
                            <td>${allTrain.endStation}</td>
                            <td>${allTrain.startTime}</td>
                            <td>${allTrain.endTime}</td>
                            <td>${allTrain.price}</td>
                            <td>${allTrain.seatNumber}</td>
                            <td class="f-14 td-manage">
                                <!-- 创建一个编辑操作的链接（a标签），设置无文本装饰样式，添加了左侧外边距（ml-5）用于间隔，href属性指向编辑车次的Servlet地址（通过传递当前车次的trainId作为参数），title属性设置鼠标悬停时的提示信息为"编辑"，内部通过图标字体（Hui-iconfont）显示编辑图标 -->
                                <a style="text-decoration:none" class="ml-5" href="<%=basePath%>UpdateTrainServlet?trainId=${allTrain.trainId}" title="编辑"><i class="Hui-iconfont">&#xe6df;</i></a>
                                <!-- 创建一个删除操作的链接（a标签），同样设置无文本装饰样式和左侧外边距，href属性指向删除车次的Servlet地址（传递当前车次的trainId作为参数），title属性设置鼠标悬停时的提示信息为"删除"，内部通过图标字体显示删除图标 -->
                                <a style="text-decoration:none" class="ml-5" href="<%=basePath%>DeleteTrainServlet?trainId=${allTrain.trainId}" 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 作为公共模版分离出去-->

    <!--请在下方写此页面业务相关的脚本，这里预留了位置方便添加与该页面特定业务逻辑相关的JavaScript代码，比如对表格的进一步操作、数据交互等功能的代码 -->
    <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">
        // 使用jQuery选择器选中类名为table-sort的表格元素，并调用dataTable方法将其初始化为一个具有排序、状态保存等功能的DataTable表格。
        $('.table-sort').dataTable({
            // 设置默认的排序方式，按照第一列（索引为0）进行升序（asc）排序，即表格加载时会自动按照第一列的值从小到大排序。
            "aaSorting": [[0, "asc"]],
            // 设置是否保存表格的状态（如排序状态、分页状态等），设置为true表示会保存这些状态，下次访问页面时会恢复上次的状态。
            "bStateSave": true,
            // 这里可能是拼写错误，正确的应该是"paging"，用于设置是否显示分页功能，若设为false则不显示分页，表格会一次性展示所有数据（如果数据量较多可能会影响页面性能和展示效果）。
            "pading": false,
            // 通过aoColumnDefs配置列的相关属性，这里设置了第八列（索引为8，对应操作列）不参与排序，即用户点击该列标题时不会触发排序操作。
            "aoColumnDefs": [
                // {"bVisible": false, "aTargets": [ 3 ]} //控制列的隐藏显示，这行代码被注释掉了，如果取消注释可以用于隐藏指定的列（这里原本可能是想隐藏第四列，可根据实际需求调整）。
                {"orderable": false, "aTargets": [8]}
            ]
        });
    </script>

</body>

</html>