【Spring】SpringMvc项目当中,页面删除最后一条数据,页面不跳转并且数据为空。

news2024/11/30 13:50:05

期待您的关注 

在之前学习SpringMvc的时候遇到过这样一个BUG,当我在一个页面删除该页面的最后一条数据的时候,一旦我删除成功,那么这个页面不会进行跳转,而是还停留在这个本不应该存在的页面,而且数据什么都没有。如下图所示。

 点击删除之后是这样。

???我嘞个去,这是咋回事啊,赶紧看看我们的代码,前端部分。我获取了这个歌手的id,之后发送post请求,传入这个歌手id,数据返回“success”的时候删除成功,然后调用了form表单的提交功能,这个form表单就是展示歌手的信息,能让页面刷新的只有这个表单提交了。我们来看看提交的到底是什么,为什么展示空页面。

$(".btn-warning").click(function () {
                var srid = $(this).attr("srid");
                console.log(srid)
                layer.confirm('是否确认删除?', {icon: 3, title:'提示'}, function(index){
                    $.ajax({
                        url: "/songer/delSonger",
                        type: "post",
                        data: {
                            srid:srid
                        },
                        dataType: "text",
                        success: function (text) {
                            if (text == "success") {
                                layer.msg("删除成功");
                                layer.close(index);
                                $("#txForm").submit();
                            }
                        }
                    })
                });
            })

 其他的什么信息啥的都没问题,主要的就是这个分页。

我给后端传了pageNo(页数),pageSize(页面大小),我这里没有引用分页插件,是自己创建的分页。

<input type="hidden" id="pageNo" name="pageNo" value="${mq.pageNo}">
<input type="hidden" id="pageSize" value="${page.pageSize}">

好,到了这里这些hidden中的数据都是从后端传过来的,在我们获取歌手信息的时候又传给了后端。

封装返回的Page。

@Data
public class Page <T>{
    // 当前页码
    private Integer pageNo;
    // 每页显示条数
    private Integer pageSize;
    private Integer startNum;
    // 总页数
    private Integer totalPage;
    private List<T> list;
    // 总记录数
    private Integer totalCount;


    public Integer getTotalPage() {
       totalPage = totalCount/pageSize;
       if(totalCount==0||totalCount%pageSize!=0){
           totalPage++;
       }
        return totalPage;
    }
}

 

行了,我知道啥原因了,在我删除数据的时候我把上一次请求后保存的pageNo又传了回去,我当前在第三页,我删除了之后本该请求第二页,但是传给后端的pageNo依然是3,数据库里根本就没有第三页的数据啊,所以数据展示为空。

解决方法 

我在获取数据的时候我把数据库当中的totalCount和totalPage传过来,行了你看吧,我在删除了数据之后我还能直接重新获取表单吗?我不得把页数3改为2在获取表单。

在请求中我获取了总的数据个数然后减一,拿到现在的数据总个数之后我去除以页面大小就得到了剩下的总页数,当然要向上取整一下。毕竟没有2.5页的概念。之后如果这个pageNo比剩下的总页数要大,我就直接把pageNo改为最后一页了。这次你在删除吧,解决问题。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1555780.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java基础之自增自减运算符

Java基础之自增自减运算符 基本用法 int a 10;a; System .out.prinln(a);//a11int a 10;a; System .out.prinln(a);//a11tip: 第一次运算之后a的值会更新 然后再进行下面的运算!!! 练习: 代码呈现: 结果: tip: x的值是最新的x的值.

【Node.js】大文件上传

概述 大文件上传通常采用分片上传。如果因为某些原因上传突然中断&#xff0c;解决问题之后可以接着之前的分片上传&#xff0c;而不需要从头开始上传&#xff0c;也就是断点续传。此外还可以利用多个网络连接并行上传多个分片&#xff0c;提高上传速度。 注&#xff1a;前端不…

汽车电子与软件架构概述

汽车电子与软件架构概述 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师 (Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,喝完再挣扎,出门靠自己…

N9010A安捷伦N9010A信号分析仪

181/2461/8938产品概述&#xff1a; Keysight N9010A EXA 信号分析仪是最大限度提高生产线吞吐量的最快方法。从测量速度到代码兼容性&#xff0c;它让每一毫秒都很重要&#xff0c;并帮助您降低总体测试成本。 我们无法预测未来&#xff0c;但安捷伦可以利用我们面向未来的测…

零基础教程:R语言lavaan结构方程模型(SEM)

查看原文>>>最新基于R语言lavaan结构方程模型&#xff08;SEM&#xff09;实践技术应用 基于R语言lavaan程序包&#xff0c;通过理论讲解和实际操作相结合的方式&#xff0c;由浅入深地系统介绍结构方程模型的建立、拟合、评估、筛选和结果展示的全过程。我们筛选大量…

马斯克旗下xAI发布Grok-1.5,相比较开源的Grok-1,各项性能大幅提升,接近GPT-4!

本文原文来自DataLearnerAI官方网站&#xff1a;马斯克旗下xAI发布Grok-1.5&#xff0c;相比较开源的Grok-1&#xff0c;各项性能大幅提升&#xff0c;接近GPT-4&#xff01; | 数据学习者官方网站(Datalearner) 继Grok-1开源之后&#xff0c;xAI宣布了Grok-1.5的内测消息&…

Linux ssh免密登录配置

步骤 在本地机器上生成公钥和私钥对。将本地公钥复制到远程机器的~/.ssh/authorized_keys文件中。 实现1 在服务器上生成SSH密钥对 ssh-keygen -t rsa -f /home/id_rsa1ssh-keygen: 这是一个用于生成、管理和转换 SSH 密钥的 OpenSSH 工具。-t rsa: 用于指定要生成的密钥类…

学生价,leetcode会员购买分析

最近想要购买leetcode会员&#xff0c;但不知道买啥好&#xff0c;打算用python可视化数据进行一个简单的分析 具体数据如下 curve 1: 首两月79元每月&#xff0c;后续连续包月59curve 2: 90天199curve 3: 365天365&#xff08;学生认证&#xff09; 这么看&#xff0c;数据…

【如何解决一些常见的 Composer 错误的保姆级讲解】

&#x1f308;个人主页:程序员不想敲代码啊&#x1f308; &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家&#x1f3c6; &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提…

AIS板评测 dAI01-OEM

目录 一、设备概述 二、技术性能评测 三、总结 一、设备概述 dAI01-OEM是一款AIS接收机板卡&#xff0c;旨在与OpenCPN、Ship Plotter等能够接收串口数据输入的软件实现无缝配合。它不仅能够高效接收并处理AIS信号&#xff0c;还能够将本船的信息实时上传到MarineTraffic和…

vivado 生成比特流或器件镜像

在生成比特流或器件镜像之前 &#xff0c; 请复查其设置 &#xff0c; 确保这些设置对于您的设计都正确无误 &#xff0c; 这一点至关重要。 Vivado IDE 中的比特流和器件镜像设置分为 2 种类型 &#xff1a; 1. 比特流或器件镜像文件格式设置。 2. 器件配置设置。 在 V…

python中raise_for_status方法的作用

文章目录 说明示例1&#xff1a;基本使用示例2&#xff1a;多种异常 说明 raise_for_status() 方法在 Python 的 requests 库中用于在发送 HTTP 请求后检查响应的状态码。如果响应的状态码表示请求未成功&#xff08;即状态码不是 2xx&#xff09;&#xff0c;则该方法会抛出一…

网络安全入门 5 天速成教程_ WEB 安全渗透攻防技术

前言 随着 Web 技术发展越来越成熟&#xff0c;而非 Web 服务越来越少的暴露在互联网上&#xff0c;现在互联网安全主要指的是 Web 安全。 为了自身不“裸奔”在大数据里&#xff0c;渐渐开始学习 Web 安全&#xff0c;在学习 Web 安全的过程中&#xff0c;发现很大一部分知识…

StructStreaming Batch mode和Continuous mode

StructStreaming Batch mode和Continuous mode 让我们把目光集中到 Structured Streaming&#xff0c;也就是流处理引擎本身。Structured Streaming 与 Spark MLlib 并列&#xff0c;是 Spark 重要的子框架之一。值得一提的是&#xff0c;Structured Streaming 天然能够享受 S…

python入门核心

class 02. Python导言须知.软件使用 主讲老师 - answer_yym 1. 导言须知 课程方向&#xff1a; 知识点主要面向小学5年级的少儿编程Python课程&#xff0c;适用于各类竞赛&#xff1b; 课程比较适合理工科父母的亲子互动&#xff0c;教培机构老师备课参考&#xff1b; 课程…

机器学习——LightGBM算法

机器学习——LightGBM算法 摘要&#xff1a; LightGBM是一种高效的梯度提升框架&#xff0c;它在处理大规模数据时表现出色&#xff0c;并且具有较快的训练速度和较低的内存消耗。本文将介绍LightGBM算法的原理、特点以及与传统GBDT算法的区别&#xff0c;并使用Python对其进行…

java题目9:100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担。计算大中小马的数目(HorsesPackGoods9)

每日小语 正是他的意图损坏了他的悟性。——《充足理由律的四重根》 思考 有点鸡兔同笼的感觉嗷&#xff0c; //100匹马驮100担货&#xff0c;大马一匹驮3担&#xff0c;中马一匹驮2担&#xff0c;小马两匹驮1担。计算大中小马的数目&#xff08;public class HorsesPackGoo…

C++对C的扩充(三)

5 带缺省参数的函数 一般情况下,实参个数应与形参个数相同。C允许实参个数与形参个数不同。办法是在形参表列中对一个或几个形参指定缺省值(或称默认值)。例如某一函数的首部可用如下形式: void fun(int a, int b,int c100) 在调用此函数时如写成fun(2,4,6),则形参a,b,c的值…

嵌入式下C/C++调用sqlite3简单开发

交叉编译sqlite3请关注我第一篇博文 sqlite3 交叉编译-CSDN博客 sqlite3的命令的简单使用&#xff08;增删改查&#xff0c;创建/删除表&#xff09;请关注我的上一篇博文 sqlite3嵌入式使用以及C/C代码开发-CSDN博客 一、新建文件夹 此文件夹用于放置工程&#xff0c;比如…

MySQl on和where条件的区别?

MySQ L on和where条件的区别&#xff1f; on会生成临时表&#xff0c;不满足条件会置空 where 过滤数据&#xff0c;不满足的数据不会显示