• SpringBoot学习笔记五之管理员后台维护


    注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6803544440112677379/

    首先完成分页

    引入PageHelper(之前已经添加过了)

    SpringBoot学习笔记五之管理员后台维护

     

    在spring-persist-mybatis.xml配置PageHelper插件

    SpringBoot学习笔记五之管理员后台维护

     

    找到AdminMapper.xml完成代码

    SpringBoot学习笔记五之管理员后台维护

     

    完成selectAdminByKeyword

    SpringBoot学习笔记五之管理员后台维护

     

    AdminMapper接口中声明方法

    SpringBoot学习笔记五之管理员后台维护

     

    AdminService接口中添加方法

    SpringBoot学习笔记五之管理员后台维护

     

    具体实现

    SpringBoot学习笔记五之管理员后台维护

     

    AdminHandler中添加的方法

    SpringBoot学习笔记五之管理员后台维护

     

    准备admin-page.jsp

    SpringBoot学习笔记五之管理员后台维护

     

    添加代码

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <!DOCTYPE html>
    <html lang="zh-CN">
    <%@include file="/WEB-INF/include-head.jsp"%>
    <body>
    <%@ include file="/WEB-INF/include-nav.jsp"%>
    <div class="container-fluid">
    <div class="row">
    <%@ include file="/WEB-INF/include-sidebar.jsp"%>
    <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
    <div class="panel panel-default">
    <div class="panel-heading">
    <h3 class="panel-title">
    <i class="glyphicon glyphicon-th"></i> 数据列表
    </h3>
    </div>
    <div class="panel-body">
    <form class="form-inline" role="form" style="float: left;">
    <div class="form-group has-feedback">
    <div class="input-group">
    <div class="input-group-addon">查询条件</div>
    <input class="form-control has-success" type="text"
    placeholder="请输入查询条件">
    </div>
    </div>
    <button type="button" class="btn btn-warning">
    <i class="glyphicon glyphicon-search"></i> 查询
    </button>
    </form>
    <button type="button" class="btn btn-danger"
    style="float: right; margin-left: 10px;">
    <i class=" glyphicon glyphicon-remove"></i> 删除
    </button>
    <button type="button" class="btn btn-primary"
    style="float: right;" onclick="window.location.href='add.html'">
    <i class="glyphicon glyphicon-plus"></i> 新增
    </button>
    <br>
    <hr style="clear: both;">
    <div class="table-responsive">
    <table class="table  table-bordered">
    <thead>
    <tr>
    <th width="30">#</th>
    <th width="30"><input type="checkbox"></th>
    <th>账号</th>
    <th>名称</th>
    <th>邮箱地址</th>
    <th width="100">操作</th>
    </tr>
    </thead>
    <tbody>
    <c:if test="${empty requestScope.pageInfo.list }">
    <tr>
    <td colspan="6" align="center">抱歉!没有查询到您要的数据!</td>
    </tr>
    </c:if>
    <c:if test="${!empty requestScope.pageInfo.list }">
    <c:forEach items="${requestScope.pageInfo.list }" var="admin" varStatus="myStatus">
    <tr>
    <td>${myStatus.count }</td>
    <td><input type="checkbox"></td>
    <td>${admin.loginAcct }</td>
    <td>${admin.userName }</td>
    <td>${admin.email }</td>
    <td>
    <button type="button" class="btn btn-success btn-xs">
    <i class=" glyphicon glyphicon-check"></i>
    </button>
    <button type="button" class="btn btn-primary btn-xs">
    <i class=" glyphicon glyphicon-pencil"></i>
    </button>
    <button type="button" class="btn btn-danger btn-xs">
    <i class=" glyphicon glyphicon-remove"></i>
    </button>
    </td>
    </tr>
    </c:forEach>
    </c:if>
    </tbody>
    <tfoot>
    <tr>
    <td colspan="6" align="center">
    <ul class="pagination">
    <li class="disabled"><a href="#">上一页</a></li>
    <li class="active"><a href="#">1 <span
    class="sr-only">(current)</span></a></li>
    <li><a href="#">2</a></li>
    <li><a href="#">3</a></li>
    <li><a href="#">4</a></li>
    <li><a href="#">5</a></li>
    <li><a href="#">下一页</a></li>
    </ul>
    </td>
    </tr>
     
    </tfoot>
    </table>
    </div>
    </div>
    </div>
    </div>
    </div>
    </div>
    </body>
    SpringBoot学习笔记五之管理员后台维护

     

    运行查看下

    SpringBoot学习笔记五之管理员后台维护

     

    分页导航条

    加入pagination的环境

    SpringBoot学习笔记五之管理员后台维护

     

    引入

    SpringBoot学习笔记五之管理员后台维护

     

    <script type="text/javascript">
     
    $(function(){
     
    // 调用后面声明的函数对页码导航条进行初始化操作
    initPagination();
     
    });
     
    // 生成页码导航条的函数
    function initPagination() {
     
    // 获取总记录数
    var totalRecord = ${requestScope.pageInfo.total};
     
    // 声明一个JSON对象存储Pagination要设置的属性
    var properties = {
    num_edge_entries: 3,                                                                 // 边缘页数
    num_display_entries: 5,                                                              // 主体页数
    callback: pageSelectCallback,                                                    // 指定用户点击“翻页”的按钮时跳转页面的回调函数
    items_per_page: ${requestScope.pageInfo.pageSize},       // 每页要显示的数据的数量
    current_page: ${requestScope.pageInfo.pageNum - 1},     // Pagination内部使用pageIndex来管理页码,pageIndex从0开始,pageNum从1开始,所以要减一
    prev_text: "上一页",                                                                            // 上一页按钮上显示的文本
    next_text: "下一页"                                                                             // 下一页按钮上显示的文本
    };
     
    // 生成页码导航条
    $("#Pagination").pagination(totalRecord, properties);
     
    }
     
    // 回调函数的含义:声明出来以后不是自己调用,而是交给系统或框架调用
    // 用户点击“上一页、下一页、1、2、3……”这样的页码时调用这个函数实现页面跳转
    // pageIndex是Pagination传给我们的那个“从0开始”的页码
    function pageSelectCallback(pageIndex, jQuery) {
     
    // 根据pageIndex计算得到pageNum
    var pageNum = pageIndex + 1;
     
    // 跳转页面
    window.location.href = "admin/get/page.html?pageNum="+pageNum+"&keyword=${param.keyword}";
     
    // 由于每一个页码按钮都是超链接,所以在这个函数最后取消超链接的默认行为
    return false;
    }
     
    </script>

    SpringBoot学习笔记五之管理员后台维护

     

    替换

    SpringBoot学习笔记五之管理员后台维护

     

    有个地方我们注释一下jquery.pagination.js中

    SpringBoot学习笔记五之管理员后台维护

     

    带上关键字进行查询,在admin-page.jsp中

    SpringBoot学习笔记五之管理员后台维护

     

    翻页时保持查询条件

    SpringBoot学习笔记五之管理员后台维护

     

    点击删除

    调整删除按钮

    代码

    <a href="admin/remove/${admin.id }/${requestScope.pageInfo.pageNum }/${param.keyword }.html" class="btn btn-danger btn-xs"><i class=" glyphicon glyphicon-remove"></i></a>
    SpringBoot学习笔记五之管理员后台维护

     

    编辑handler

    SpringBoot学习笔记五之管理员后台维护

     

    添加remove方法(service、serviceimpl)

    SpringBoot学习笔记五之管理员后台维护

     

    SpringBoot学习笔记五之管理员后台维护

     

    测试成功

    SpringBoot学习笔记五之管理员后台维护

     

    新增

    跳转表单页面

    之前数据库账户没有加唯一索引,修改下表

    ALTER TABLE `t_admin` ADD UNIQUE INDEX(`login_acct`)

    SpringBoot学习笔记五之管理员后台维护

     

    调整按钮admin-page.jsp

    SpringBoot学习笔记五之管理员后台维护

     

    添加mvc:view-controller

    SpringBoot学习笔记五之管理员后台维护

     

    添加页面admin-add.jsp

    SpringBoot学习笔记五之管理员后台维护

     

    添加代码

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html lang="zh-CN">
    <%@include file="/WEB-INF/include-head.jsp"%>
     
    <body>
     
    <%@ include file="/WEB-INF/include-nav.jsp"%>
    <div class="container-fluid">
    <div class="row">
    <%@ include file="/WEB-INF/include-sidebar.jsp"%>
    <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
    <ol class="breadcrumb">
    <li><a href="/admin/to/main/page.html">首页</a></li>
    <li><a href="/admin/get/page.html">数据列表</a></li>
    <li class="active">新增</li>
    </ol>
    <div class="panel panel-default">
    <div class="panel-heading">
    表单数据
    <div style="float: right; cursor: pointer;" data-toggle="modal"
    data-target="#myModal">
    <i class="glyphicon glyphicon-question-sign"></i>
    </div>
    </div>
    <div class="panel-body">
    <form action="admin/save.html" method="post" role="form">
    <p>${requestScope.exception.message }</p>
    <div class="form-group">
    <label for="exampleInputPassword1">登录账号</label>
    <input
             name="loginAcct"
             type="text" class="form-control" id="exampleInputPassword1"
             placeholder="请输入登录账号">
    </div>
    <div class="form-group">
    <label for="exampleInputPassword1">登录密码</label>
    <input
             name="userPswd"
             type="text" class="form-control" id="exampleInputPassword1"
             placeholder="请输入登录密码">
    </div>
    <div class="form-group">
    <label for="exampleInputPassword1">用户昵称</label>
    <input
             name="userName"
             type="text" class="form-control" id="exampleInputPassword1"
             placeholder="请输入用户名称">
    </div>
    <div class="form-group">
    <label for="exampleInputEmail1">邮箱地址</label>
    <input type="email"
             name="email"
             class="form-control" id="exampleInputEmail1"
             placeholder="请输入邮箱地址">
    <p class="help-block label label-warning">请输入合法的邮箱地址, 格式为:
             xxxx@xxxx.com</p>
    </div>
    <button type="submit" class="btn btn-success">
    <i class="glyphicon glyphicon-plus"></i> 新增
    </button>
    <button type="reset" class="btn btn-danger">
    <i class="glyphicon glyphicon-refresh"></i> 重置
    </button>
    </form>
    </div>
    </div>
    </div>
    </div>
    </div>
    </body>
    </html>

    编写handler方法

    SpringBoot学习笔记五之管理员后台维护

     

    完成service方法

    SpringBoot学习笔记五之管理员后台维护

     

    SpringBoot学习笔记五之管理员后台维护

     

    添加LoginAcctAlreadyInUseException

    SpringBoot学习笔记五之管理员后台维护

     

    测试下

    SpringBoot学习笔记五之管理员后台维护

     

    SpringBoot学习笔记五之管理员后台维护

     

    更新和新增的思路一致

    修改按钮

    <a href="admin/to/edit/page.html?adminId=${admin.id }&pageNum=${requestScope.pageInfo.pageNum }&keyword=${param.keyword }" class="btn btn-primary btn-xs"><i class=" glyphicon glyphicon-pencil"></i></a>
    SpringBoot学习笔记五之管理员后台维护

     

    添加页面

    SpringBoot学习笔记五之管理员后台维护

     

    页面内容

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html lang="zh-CN">
    <%@include file="/WEB-INF/include-head.jsp"%>
     
    <body>
     
    <%@ include file="/WEB-INF/include-nav.jsp"%>
    <div class="container-fluid">
    <div class="row">
    <%@ include file="/WEB-INF/include-sidebar.jsp"%>
    <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
    <ol class="breadcrumb">
    <li><a href="/admin/to/main/page.html">首页</a></li>
    <li><a href="/admin/get/page.html">数据列表</a></li>
    <li class="active">更新</li>
    </ol>
    <div class="panel panel-default">
    <div class="panel-heading">
    表单数据
    <div style="float: right; cursor: pointer;" data-toggle="modal"
    data-target="#myModal">
    <i class="glyphicon glyphicon-question-sign"></i>
    </div>
    </div>
    <div class="panel-body">
    <form action="admin/update.html" method="post" role="form">
    <input type="hidden" name="id" value="${requestScope.admin.id }" />
    <input type="hidden" name="pageNum" value="${param.pageNum }" />
    <input type="hidden" name="keyword" value="${param.keyword }" />
    <p>${requestScope.exception.message }</p>
    <div class="form-group">
    <label for="exampleInputPassword1">登录账号</label>
    <input
    name="loginAcct"
    value="${requestScope.admin.loginAcct }"
    type="text" class="form-control"
    id="exampleInputPassword1" placeholder="请输入登录账号">
    </div>
    <div class="form-group">
    <label for="exampleInputPassword1">用户昵称</label>
    <input
    name="userName"
    value="${requestScope.admin.userName }"
    type="text" class="form-control"
    id="exampleInputPassword1" placeholder="请输入用户名称">
    </div>
    <div class="form-group">
    <label for="exampleInputEmail1">邮箱地址</label>
    <input type="email"
    name="email"
    value="${requestScope.admin.email }" class="form-control" id="exampleInputEmail1"
    placeholder="请输入邮箱地址">
    <p class="help-block label label-warning">请输入合法的邮箱地址, 格式为:
    xxxx@xxxx.com</p>
    </div>
    <button type="submit" class="btn btn-success">
    <i class="glyphicon glyphicon-edit"></i> 更新
    </button>
    <button type="reset" class="btn btn-danger">
    <i class="glyphicon glyphicon-refresh"></i> 重置
    </button>
    </form>
    </div>
    </div>
    </div>
    </div>
    </div>
    </body>
    </html>
    SpringBoot学习笔记五之管理员后台维护

     

    编写handler方法

    SpringBoot学习笔记五之管理员后台维护

     

    添加业务方法

    SpringBoot学习笔记五之管理员后台维护

     

    SpringBoot学习笔记五之管理员后台维护

     

    同样添加LoginAcctAlreadyInUseForUpdateException

    SpringBoot学习笔记五之管理员后台维护

     

    测试下

    SpringBoot学习笔记五之管理员后台维护

     

    SpringBoot学习笔记五之管理员后台维护

     

    Admin-page.jsp所有代码

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <!DOCTYPE html>
    <html lang="zh-CN">
    <%@include file="/WEB-INF/include-head.jsp"%>
    <link rel="stylesheet" href="css/pagination.css" />
    <script type="text/javascript" src="jquery/jquery.pagination.js"></script>
    <script type="text/javascript">
     
    $(function(){
     
    // 调用后面声明的函数对页码导航条进行初始化操作
    initPagination();
     
    });
     
    // 生成页码导航条的函数
    function initPagination() {
     
    // 获取总记录数
    var totalRecord = ${requestScope.pageInfo.total};
     
    // 声明一个JSON对象存储Pagination要设置的属性
    var properties = {
    num_edge_entries: 3,                                                                 // 边缘页数
    num_display_entries: 5,                                                              // 主体页数
    callback: pageSelectCallback,                                                    // 指定用户点击“翻页”的按钮时跳转页面的回调函数
    items_per_page: ${requestScope.pageInfo.pageSize},       // 每页要显示的数据的数量
    current_page: ${requestScope.pageInfo.pageNum - 1},     // Pagination内部使用pageIndex来管理页码,pageIndex从0开始,pageNum从1开始,所以要减一
    prev_text: "上一页",                                                                            // 上一页按钮上显示的文本
    next_text: "下一页"                                                                             // 下一页按钮上显示的文本
    };
     
    // 生成页码导航条
    $("#Pagination").pagination(totalRecord, properties);
     
    }
     
    // 回调函数的含义:声明出来以后不是自己调用,而是交给系统或框架调用
    // 用户点击“上一页、下一页、1、2、3……”这样的页码时调用这个函数实现页面跳转
    // pageIndex是Pagination传给我们的那个“从0开始”的页码
    function pageSelectCallback(pageIndex, jQuery) {
     
    // 根据pageIndex计算得到pageNum
    var pageNum = pageIndex + 1;
     
    // 跳转页面
    window.location.href = "admin/get/page.html?pageNum="+pageNum+"&keyword=${param.keyword}";
     
    // 由于每一个页码按钮都是超链接,所以在这个函数最后取消超链接的默认行为
    return false;
    }
     
    </script>
    <body>
     
    <%@ include file="/WEB-INF/include-nav.jsp"%>
    <div class="container-fluid">
    <div class="row">
    <%@ include file="/WEB-INF/include-sidebar.jsp"%>
    <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
    <div class="panel panel-default">
    <div class="panel-heading">
    <h3 class="panel-title">
    <i class="glyphicon glyphicon-th"></i> 数据列表
    </h3>
    </div>
    <div class="panel-body">
    <form action="admin/get/page.html" method="post" class="form-inline" role="form" style="float: left;">
    <div class="form-group has-feedback">
    <div class="input-group">
    <div class="input-group-addon">查询条件</div>
    <input name="keyword" class="form-control has-success" type="text"
    placeholder="请输入查询条件">
    </div>
    </div>
    <button type="submit" class="btn btn-warning">
    <i class="glyphicon glyphicon-search"></i> 查询
    </button>
    </form>
    <button type="button" class="btn btn-danger"
    style="float: right; margin-left: 10px;">
    <i class=" glyphicon glyphicon-remove"></i> 删除
    </button>
    <!--
    旧代码
    <button type="button" class="btn btn-primary"
    style="float: right;" onclick="window.location.href='add.html'">
    <i class="glyphicon glyphicon-plus"></i> 新增
    </button> -->
    <!-- 新代码 -->
    <a style="float: right;" href="admin/to/add/page.html" class="btn btn-primary"><i class="glyphicon glyphicon-plus"></i> 新增</a>
    <br>
    <hr style="clear: both;">
    <div class="table-responsive">
    <table class="table  table-bordered">
    <thead>
    <tr>
    <th width="30">#</th>
    <th width="30"><input type="checkbox"></th>
    <th>账号</th>
    <th>名称</th>
    <th>邮箱地址</th>
    <th width="100">操作</th>
    </tr>
    </thead>
    <tbody>
    <c:if test="${empty requestScope.pageInfo.list }">
    <tr>
    <td colspan="6" align="center">抱歉!没有查询到您要的数据!</td>
    </tr>
    </c:if>
    <c:if test="${!empty requestScope.pageInfo.list }">
    <c:forEach items="${requestScope.pageInfo.list }" var="admin" varStatus="myStatus">
    <tr>
    <td>${myStatus.count }</td>
    <td><input type="checkbox"></td>
    <td>${admin.loginAcct }</td>
    <td>${admin.userName }</td>
    <td>${admin.email }</td>
    <td>
    <button type="button" class="btn btn-success btn-xs">
    <i class=" glyphicon glyphicon-check"></i>
    </button>
    <!-- 旧代码 -->
    <!-- <button type="button" class="btn btn-primary btn-xs">
    <i class=" glyphicon glyphicon-pencil"></i>
    </button> -->
    <!-- 新代码 -->
    <a href="admin/to/edit/page.html?adminId=${admin.id }&pageNum=${requestScope.pageInfo.pageNum }&keyword=${param.keyword }" class="btn btn-primary btn-xs"><i class=" glyphicon glyphicon-pencil"></i></a>
    <a href="admin/remove/${admin.id }/${requestScope.pageInfo.pageNum }/${param.keyword }.html" class="btn btn-danger btn-xs"><i class=" glyphicon glyphicon-remove"></i></a>
    </td>
    </tr>
    </c:forEach>
    </c:if>
    </tbody>
    <tfoot>
    <tr>
    <td colspan="6" align="center">
    <div id="Pagination" class="pagination"><!-- 这里显示分页 --></div>
    </td>
    </tr>
    </tfoot>
    </table>
    </div>
    </div>
    </div>
    </div>
    </div>
    </div>
    </body>
    </html>
  • 相关阅读:
    使用 VS Code 开发和调试 Burp Suite 扩展
    后渗透神器 Empire 基础用法
    5种语言的按钮事件 断点
    X64下MmIsAddressValid的逆向及内存寻址解析
    x64 内存共享区 KUSER_SHARED_DATA
    内存映射+远线程 调用游戏CALL
    C语言运算符总结
    x32 x64的不同传参方式
    内存占用的一些小问题
    x64分页机制 9
  • 原文地址:https://www.cnblogs.com/bqwzy/p/12577682.html
Copyright © 2020-2023  润新知