SSMP整合案例第八步 前端页面的分页功能完善与维护和实现条件查询

简介: SSMP整合案例第八步 前端页面的分页功能完善与维护和实现条件查询

分页

页面中有分页展示

查看组件

想用什么直接编辑

vue里面的常量数据

可以修改模型数据达到修改展示效果的能力

Vue.js 中,通常会将不经常修改且在整个应用程序中共享的数据定义为常量数据。常量数据可以是在组件中定义的静态数据,也可以是通过 Vuex 管理的全局状态。

先在前端进入的时候加载分页数据

钩子函数(Hooks)是在软件开发中用于实现特定操作或者在特定事件发生时执行自定义代码的函数。在不同的编程语言和框架中,钩子函数的含义和用法可能有所不同。下面我将介绍几个常见的上下文中钩子函数的概念:

在前端开发中,特别是在使用 Vue.js 或 React 等框架时,钩子函数通常指的是生命周期钩子(Lifecycle Hooks),用于在组件生命周期的特定阶段执行代码。

  • Vue.js 中的生命周期钩子
  • beforeCreate:实例刚被创建,数据观测 (data observer) 和 event/watcher 事件配置之前被调用。
  • created:实例已经创建完成后被调用。在这一步,实例已完成以下的配置:数据观测(data observer),属性和方法的运算,watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前不可见。
  • beforeMount:在挂载开始之前被调用:相关的 render 函数首次被调用。
//钩子函数,VUE对象初始化完成后自动执行
created() {
    //加载全部数据
    // this.getAll();
    //加载分页数据
    this.getPage();
},
 
methods: {
 
    //分页查询
    getPage() {
        console.log("getPage  run")//控制台打印
        axios.get("/users/"+this.pagination.currentPage+"/"+this.pagination.pageSize).then((res) => {
            this.dataList = res.data.data.records;
        });
    },

这样就能达到效果

修改数据模型绑定的数值

//分页查询
getPage() {
    console.log("getPage  run")//控制台打印
    axios.get("/users/"+this.pagination.currentPage+"/"+this.pagination.pageSize).then((res) => {
        this.pagination.pageSize=res.data.data.size;
        this.pagination.currentPage=res.data.data.current;
        this.pagination.total=res.data.data.total;
        this.dataList = res.data.data.records;
    });
},

这样在页面中就能展示出数据

修改后再执行查询就行

这样就能在页面中加载数据

分页的数据得从页面上拿 然后重新加载页面

小结

修改数据模型的数据

我们用axios发起一个以异步请求调用

获取分页数据

得到数据结果后 我们得拿到数据 进行工作

在改切换页码数据

将修改的页码值传递给数据模型中的currentPage这个属性

再重新执行更新刷新操作即可

分页功能维护

刚才还存在bug

比如我们把第三页的数据全部删掉后

页码还是后存在

应该不会显示当前页面,应该会显示前面的页面

所以我们会在controller中的查询中进行一个判断

@GetMapping("{currentPage}/{pageSize}")
public Result getPage(@PathVariable int currentPage ,@PathVariable int pageSize){
    IPage<User> page=userService.getPage(currentPage,pageSize);
    //如果当前页码值大于总页码值 那么重新执行查询操作 使用最大页码值作为大当前页码值
    if(currentPage>page.getPages()){
        page=userService.getPage((int) page.getPages(),pageSize);
    }
    System.out.println("分页数据:"+currentPage+" "+pageSize);
    return new Result(true,page);
}

这样就修改了这个bug

这个叫后台补救性方案

"后台补救性方案"这个术语通常可以解释为在某些问题或突发情况出现后,采取的应对措施或修复措施。具体的方案和实施会根据具体的情况和问题而有所不同,以下是一些常见的后台补救性方案示例:

  1. 数据库备份与恢复
  • 问题:数据库遭遇意外的数据损坏、删除或破坏性变更。
  • 解决方案:定期进行数据库备份,并确保备份的可靠性。在发生问题时,可以快速恢复到最近的备份状态。
  1. 缓存刷新
  • 问题:由于缓存中的数据不一致或过期,导致用户看到不正确的信息。
  • 解决方案:提供手动或自动的缓存刷新机制,确保在数据更新后及时刷新缓存,保持数据的一致性和准确性。
  1. 服务故障转移与恢复
  • 问题:某个服务或服务器出现故障,影响了系统的正常运行。
  • 解决方案:使用负载均衡和故障转移技术,确保系统可以自动切换到备用服务或服务器,并尽快恢复正常操作。
  1. 异常处理与日志记录
  • 问题:系统运行时出现异常或错误,但没有合适的错误处理和记录机制。
  • 解决方案:加强异常处理机制,记录详细的错误日志以便后续排查和分析问题的原因,有助于快速诊断和修复。
  1. 灾难恢复计划(DRP)
  • 问题:遇到严重的自然灾害、硬件故障或安全事件,导致系统完全或部分不可用。
  • 解决方案:制定和实施灾难恢复计划,包括备份数据中心、数据冗余和跨区域备份等措施,以确保在灾难发生时能够快速恢复业务。

这些方案都旨在保障系统在面对突发情况或问题时能够快速恢复正常运行,减少对用户和业务的影响。具体的实施策略应该根据具体的业务需求和系统架构来进行调整和优化。

通用性比较强

这个在以后开发中属于是业务问题 和整合没有什么关系

我们应该根据需求来解决问题

条件查询

之前我们写了那么多

我们也能明白 其实条件查询就是我们我们在点击查询按钮后

执行分页的时候

我们输入在搜索框里的数据 能数据模型带走

用前端的axio发异步请求传入controller层执行查询工作

首先我们得去找数据模型在那绑定的

找到数据模型

发送请求的时候这些数据都要带走

我们让其绑定数据模型

我们直接绑定分页的数据模型

<div class="filter-container">
    <el-input placeholder="人员名称" v-model="pagination.name" style="width: 200px;"
              class="filter-item"></el-input>
    <el-input placeholder="人员年龄" v-model="pagination.age" style="width: 200px;"
              class="filter-item"></el-input>
    <el-input placeholder="人员性别" v-model="pagination.gender" style="width: 200px;"
              class="filter-item"></el-input>
    <el-button @click="getPage()" class="dalfBut">查询</el-button>
    <el-button type="primary" class="butT" @click="handleCreate()">添加</el-button>
</div>

现在就能封装了

我们接下来要在函数部分书写

让填入的参数连接到数据模型中的属性

数据模型被按钮带走查询

我们我们选择在分页查询里封装数据

这样加载控制台就能打印

数据连接上

测试一下看看在控制台能不能看见传入的这些参数

打印输出成功

接下来就要到controller层把数据接出来

现在controller层把数据传过去

但是在业务层没有对应的方法

我们还要去业务层修改

两个方法

业务层接口修改完去业务层实现类去实现接口中的方法

条件组织 实现了 动态查询

getPage() {
    if (this.pagination.name == "" && this.pagination.age == "" && this.pagination.gender == "") {
        //不用连接动态数据
        console.log("getPage null run")
    }
    //连接动态数据
    param = "?name=" + this.pagination.name;
    param += "&age=" + this.pagination.age;
    param += "&gender=" + this.pagination.gender;
    //组织参数 拼接url请求地址
    console.log(param);
    //运行分页查询成功
    console.log("getPage  run")
    axios.get("/users/" + this.pagination.currentPage + "/" + this.pagination.pageSize + param).then((res) => {
        this.pagination.pageSize = res.data.data.size;
        this.pagination.currentPage = res.data.data.current;
        this.pagination.total = res.data.data.total;
        this.dataList = res.data.data.records;
    });
 
},
目录
相关文章
|
12天前
|
前端开发 JavaScript
回顾前端页面发送ajax请求方式
回顾前端页面发送ajax请求方式
33 18
|
23天前
|
前端开发 数据安全/隐私保护
angular前端基本页面验证
angular前端基本页面验证
28 1
|
27天前
|
前端开发
搭建个人博客--1、前端页面
搭建个人博客--1、前端页面
19 1
|
27天前
|
存储 前端开发 Java
验证码案例 —— Kaptcha 插件介绍 后端生成验证码,前端展示并进行session验证(带完整前后端源码)
本文介绍了使用Kaptcha插件在SpringBoot项目中实现验证码的生成和验证,包括后端生成验证码、前端展示以及通过session进行验证码校验的完整前后端代码和配置过程。
26 0
验证码案例 —— Kaptcha 插件介绍 后端生成验证码,前端展示并进行session验证(带完整前后端源码)
|
2月前
|
前端开发 API
(WEB前端编辑DWG)在线CAD如何实现图形识别功能
mxcad 提供的图形识别功能可帮助用户快速识别和提取 CAD 图纸中的各种图形,如直线、多段线、弧线、圆及图块,显著提升设计效率。此功能不仅适用于图形分类,还能进行数量统计和快速定位,减少手动操作。用户可通过 API 进行二次开发,自定义识别逻辑。具体步骤包括打开在线示例、选择识别功能、设置识别参数并开始识别。更多开发文档请关注公众号:梦想云图网页 CAD。
|
13天前
|
Web App开发 存储 前端开发
前端开发必备:requestAnimationFrame、setInterval、setTimeout——功能解析与优劣对比
前端开发必备:requestAnimationFrame、setInterval、setTimeout——功能解析与优劣对比
49 0
|
13天前
|
移动开发 前端开发 JavaScript
前端开发实战:利用Web Speech API之speechSynthesis实现文字转语音功能
前端开发实战:利用Web Speech API之speechSynthesis实现文字转语音功能
77 0
|
16天前
|
前端开发 JavaScript
前端中的“+”连接符,居然有鲜为人知的强大功能!
【10月更文挑战第9天】前端中的“+”连接符,居然有鲜为人知的强大功能!
40 0
前端中的“+”连接符,居然有鲜为人知的强大功能!
|
17天前
|
前端开发 JavaScript Shell
深入解析前端构建利器:webpack核心概念与基本功能全览
深入解析前端构建利器:webpack核心概念与基本功能全览—
17 0
|
2月前
|
JavaScript 前端开发
前端基础(十)_Dom自定义属性(带案例)
本文介绍了DOM自定义属性的概念和使用方法,并通过案例展示了如何使用自定义属性来控制多个列表项点击变色的独立状态。
38 0
前端基础(十)_Dom自定义属性(带案例)