目录

1、分页显示管理员信息

1.1、目标

1.2、思路

1.3、代码

1.3.1、引入 PageHelper 依赖

1.3.2、在 SqlSessionFactoryBean 中配置 PageHelper

1.3.3、准备查询 Admin 的 SQL 语句

1.3.4、AdminMapper 的方法

1.3.5、准备 service 方法

1.3.6、添加 AdminHandler 方法

1.3.7、加入 Pagination 插件环境

1.3.8、准备 admin-page.jsp 页面

1.3.9、完成分页条

1.3.10、修改页面显示数据的表格

1.3.11、admin-page.jsp 最终页面

2、关键词查询

2.1、更改页面查询的表单

2.2、在翻页时保持 keyword 值

3、单条删除管理员信息

3.1、思路

3.2、代码

3.2.1、修改页面的删除按钮

3.2.2、添加 service 方法

3.2.3、添加 handle 方法

4、新增管理员

4.1、目标

4.2、思路

4.3、代码

4.3.1、给 t_admin 表的账号添加唯一性约束

4.3.2、修改页面的新增按钮

4.3.3、配置 view-controller 跳转到添加页面

4.3.4、创建新增管理员的页面

4.3.5、创建添加时账号重复的异常类

4.3.6、重写 service 层方法

4.3.7、handle 方法

4.3.8、设置账号重复时的异常映射处理

5、更新管理员信息

5.1、目标

5.2、思路

5.3、代码

5.3.1、修改 admin-page.jsp 页面的修改按钮

5.3.2、添加 service 层方法

5.3.3、添加去修改页面的 handle 方法

5.3.4、添加修改管理员的页面

5.3.5、添加管理员修改页面

5.3.6、添加修改帐号已有的异常类 

5.3.7、配置修改帐号已有的异常映射

5.3.8、添加执行修改的 service 层方法

5.3.9、添加执行修改的 handle 方法

1、分页显示管理员信息

1.1、目标

以分页的形式把管理员信息显示到页面上。特殊需求:兼顾关键词查询,让后端代 码不管有没有查询条件都能够以分页形式显示数据。

1.2、思路

1.3、代码

1.3.1、引入 PageHelper 依赖

确认是否加入了 PageHelper 依赖

com.github.pagehelper

pagehelper

1.3.2、在 SqlSessionFactoryBean 中配置 PageHelper

mysql

true

1.3.3、准备查询 Admin 的 SQL 语句

1.3.4、AdminMapper 的方法

List selectAdminByKeyword(String keyword);

1.3.5、准备 service 方法

AdminService 接口

/**

* 根据关键字分页获取admin

* @param keyword 关键词

* @param pageNum 页码数

* @param pageSize 每页的数据量

* @return

*/

PageInfo getPageInfo(String keyword, Integer pageNum, Integer pageSize);

AdminServiceImpl 实现类

/**

* 根据关键字分页获取admin

* @param keyword 关键词

* @param pageNum 页码数

* @param pageSize 每页的数据量

* @return

*/

@Override

public PageInfo getPageInfo(String keyword, Integer pageNum, Integer pageSize) {

// 调用PageHelper的静态方法开启分页功能

// 体现了PageHelper的“非侵入式”设计:原本要做的查询不必有任何修改

PageHelper.startPage(pageNum, pageSize);

// 执行查询

List list = adminMapper.selectAdminByKeyword(keyword);

// 封装到PageInfo对象中

return new PageInfo<>(list);

}

1.3.6、添加 AdminHandler 方法

/**

* 根据关键词分页获取admin信息并跳转到显示页面

* @param keyword 关键词

* @param pageNum 页码数

* @param pageSize 每页的数据量

* @param ModelMap

* @return

*/

@RequestMapping("/admin/get/page.html")

public String getPageInfo(

@RequestParam(value = "keyword", defaultValue = "") String keyword, // 若请求没有关键字,默认为空字符串

@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, // 默认为第一页

@RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize, // 默认每页5条数据

ModelMap ModelMap

){

PageInfo pageInfo = adminService.getPageInfo(keyword, pageNum, pageSize);

ModelMap.addAttribute(CrowdConstant.ATTR_NAME_PAGE_INFO, pageInfo);

return "admin-page";

}

1.3.7、加入 Pagination 插件环境

① 加入所需的 css 和 jquery 

② 在使用的页面引入(注意先后顺序)

<%@include file="/WEB-INF/include-head.jsp" %>

<%-- 引入Pagination插件 --%>

1.3.8、准备 admin-page.jsp 页面

将资料中的内容复制进去 

1.3.9、完成分页条

① 修改分页条

② 编写 Pagination 代码

③ 修改 jquery.pagination.js 代码

问题:

问题的解决:不让 Pagination 在页码导航条初始化完成时就调用回调函数

将最后的调用回调函数的代码注释掉 

1.3.10、修改页面显示数据的表格

admin-page.jsp 

<%-- 没有找到admin数据 --%>

1.3.11、admin-page.jsp 最终页面

<%--

Created by IntelliJ IDEA.

User: zhang

Date: 2022/5/4

Time: 21:25

To change this template use File | Settings | File Templates.

--%>

<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<%@include file="/WEB-INF/include-head.jsp" %>

<%-- 引入Pagination插件 --%>

<%@include file="/WEB-INF/include-nav.jsp" %>

<%@include file="/WEB-INF/include-sidebar.jsp" %>

数据列表

查询条件



#账号名称邮箱地址操作
抱歉!没有查询到您要的数据!
${mystatus.count}${admin.loginAcct}${admin.userName}${admin.email}

<%-- 没有找到admin数据 --%>

#账号名称邮箱地址操作
抱歉!没有查询到您要的数据!
${mystatus.count}${admin.loginAcct}${admin.userName}${admin.email}