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;
    });
 
},
目录
相关文章
|
1月前
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
|
1月前
|
前端开发 数据安全/隐私保护
.自定义认证前端页面
.自定义认证前端页面
11 1
.自定义认证前端页面
|
29天前
|
前端开发 JavaScript 搜索推荐
前端懒加载:提升页面性能的关键技术
前端懒加载是一种优化网页加载速度的技术,通过延迟加载非首屏内容,减少初始加载时间,提高用户访问体验和页面性能。
|
1月前
|
前端开发 安全 JavaScript
在阿里云快速启动Appsmith搭建前端页面
本文介绍了Appsmith的基本信息,并通过阿里云计算巢完成了Appsmith的快速部署,使用者不需要自己下载代码,不需要自己安装复杂的依赖,不需要了解底层技术,只需要在控制台图形界面点击几下鼠标就可以快速部署并启动Appsmith,非技术同学也能轻松搞定。
|
1月前
|
JSON 前端开发 搜索推荐
惊!这些前端技术竟然能让你的网站实现个性化推荐功能!
【10月更文挑战第30天】随着互联网技术的发展,个性化推荐已成为提升用户体验的重要手段。前端技术如JavaScript通过捕获用户行为数据、实时更新推荐结果等方式,在实现个性化推荐中扮演关键角色。本文将深入解析这些技术,并通过示例代码展示其实际应用。
78 4
|
2月前
|
前端开发 JavaScript
回顾前端页面发送ajax请求方式
回顾前端页面发送ajax请求方式
39 18
|
2月前
|
前端开发 JavaScript
前端中的“+”连接符,居然有鲜为人知的强大功能!
【10月更文挑战第9天】前端中的“+”连接符,居然有鲜为人知的强大功能!
53 0
前端中的“+”连接符,居然有鲜为人知的强大功能!
|
2月前
|
前端开发 数据安全/隐私保护
angular前端基本页面验证
angular前端基本页面验证
33 1
|
2月前
|
存储 前端开发 Java
验证码案例 —— Kaptcha 插件介绍 后端生成验证码,前端展示并进行session验证(带完整前后端源码)
本文介绍了使用Kaptcha插件在SpringBoot项目中实现验证码的生成和验证,包括后端生成验证码、前端展示以及通过session进行验证码校验的完整前后端代码和配置过程。
266 0
验证码案例 —— Kaptcha 插件介绍 后端生成验证码,前端展示并进行session验证(带完整前后端源码)
|
2月前
|
Web App开发 存储 前端开发
前端开发必备:requestAnimationFrame、setInterval、setTimeout——功能解析与优劣对比
前端开发必备:requestAnimationFrame、setInterval、setTimeout——功能解析与优劣对比
180 0
下一篇
DataWorks