项目一众筹网03_2_管理员维护_单条数据删除_获取单条数据的id__前端传参给后端的两种方式_a标签才有href属性_全面了解各种转发和重定向方式

系列文章目录

07-管理员维护-单条删除-目标和思路

单条删除肯定要知道这条数据的 id,并且传给handler(controller),
不然我们就没办法知道你要删除的是哪条数据

根据我们的分析
在这里插入图片描述
所以不需要我们写sql了
但是我们发现一个问题,我们删除完之后,我们要怎么回来当前页码呢
废话不多说,我们先写看看
不要慌,干就完了了
之后再来分析
在这里插入图片描述
分析
在这里插入图片描述

数据删除完成之后
我们返回页面的时候如果是转发的话,跟之前一样,如果用户误操作了,点了一下刷新那么就会重新删除一遍导致浪费性能
所以我们还得是重定向,并且保持之前的条件来进行重定向
在这里插入图片描述

之前都是假设,下面我们开始真的写代码

08-管理员维护-单条删除-删除功能的主体代码

在这里插入图片描述
我们知道,a标签,a标签才可以跳转路径,或者说与后端对话,
我们可以在button按钮里面再放一个a标签,也可以直接不要button了
乔布斯:把一切不必要的东西全部去掉——极简主义
断舍离:家里面没有用的东西全部把它扔掉
在这里插入图片描述
如下
在这里插入图片描述
永远记住a标签才有href属性,button是没有的,如果是同步(非ajax)模式,很常见的使用到a标签
那么我们还需要给它传参,因为我们后台肯定是根据主键id来进行删除的,所以我们给它传id
在这里插入图片描述
后台过于简单,我们先随便这样写一下,
在这里插入图片描述
执行完删除操作后,返回的页面该写什么,
直接返回管理员分页的主页面(admin-page.jsp)是对的吗?
在这里插入图片描述
已经写好了,现在测试一下
在这里插入图片描述
在这里插入图片描述
但经过我们刷新等操作验证一下,是确实是删掉了
在这里插入图片描述
我们这个问题后面我们再处理
我们传参换一种方式,因为我们要的是技术尽量全面,这种传参的方式我们已经会了,
所以我们换一种方式
以后我们就两种传参方式都会了

== 前端传参给后端的两种方式——第二种(第一种看上面代码)==

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
一定要注意参数会有一个{ } 这样的花括号括起来的
前端 —— 我们模仿也这样写
在这里插入图片描述
后端 —— 我们模仿这样写
在这里插入图片描述

在这里插入图片描述

我个人感觉第一种传参的方式比较好理解,只是这种写法也会有很多人用,
为什么要说就是希望我们也能会,这样才能看得懂别人的代码

试试看能不能删除即可
在这里插入图片描述
在这里插入图片描述

删除的时候,单条数据的id要怎么获取

思路很重要,我之前的思路是用js代码去获取button按钮的id,然后执行点击事件,根据id去进行删除,
而实际上根本不需要,我们直接将button按钮改为a标签之后,获取单条数据的id就很简单了,根本不存在这个问题了

09-管理员维护-单条删除-解决删除完成后页面跳转问题

在这里插入图片描述
我们已经知道,跳转完之后如下图是没有数据的,会不会感觉到很奇怪,就算我没传参,不是有默认值吗?
其实我们更应该思考少了哪个默认值导致一个数据都没有过来
在这里插入图片描述
目前这个情况
用户体验这一关这不用说肯定是过不了的
这是肯定不行的,给别人的感觉就是你删了一条,好像把所有的数据全部删了似的,用户体验非常不好
所以我们必须得解决
思路一:找原因,思考少了哪个默认值导致一个数据都没有过来
首先直接返回jsp页面,没有数据的原因,我的理解是没有经过分页展示用户数据的@RequestMapping的逻辑处理
所以导致没有分页数据,所以我们必须要经过这个分页展示用户数据的@RequestMapping的逻辑处理
所以不纠结,这种方式是对的
在这里插入图片描述
只是删除后不能恢复原样,而是使用默认参数,回到第一页 每页显示5条数据 这些默认值 而已,但是对的
ps:有时候真心觉得 重定向yyds

思路二,老师带我们全面了解各种转发和重定向方式,好处是非常全面

在这里插入图片描述
方案2倒是可以解决这个问题,但是带来了其它的问题,那就是会把这个删除操作在刷新的时候会再执行一次删除操作
看一下日志你就会发现,所以方案2是浪费了性能

如果改成重定向就可以解决这个问题了
这也算是转发的通病了,需要注意,很多时候保证性能我们还是使用重定向比较靠谱
所以我们还有最终武器,那就是方案3—使用重定向
我们前面说过 其中有一种转发方式,是没问题的
那就是这种
在这里插入图片描述
但是这种的唯一问题就是,不能保持状态,比如第9页有5条数据,
我在第9页删除了一条数据,是不是还是应该保持在第9页呢
所以我们为了更好的用户体验,最好还是把参数加上去
在这里插入图片描述
如果后端获取不到参数,说明前端没有传,
因为我们必须明白动态参数是从哪里来的,肯定源头是从前端来的
所以如下图,我们把参数传入,后端就能直接获取了
在这里插入图片描述
所以在这里也要改一下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
现在运行肯定会报404,或者一些奇怪的错,
我们要有百折不挠的精神
我们检查一下,有没有匹配好
在这里插入图片描述
测试一下
发现springMvc还是非常的健壮
居然没有报错
所以就很完美!!!
在这里插入图片描述

10-管理员维护-新增-目标和思路(下一篇)

11-管理员维护-新增-前往表单页面
12–管理员维护-新增-执行保存
13-管理员维护-新增-处理唯一约束异常
14-管理员维护-更新-目标和思路
15-管理员维护-更新-前往更新的表单页面
16-管理员维护-更新-执行更新
17-管理员维护-更新-小结
18-RBAC模型-概述
19-RBAC模型-多对多在数据库的表示
20-RBAC模型-RBAC0~3
21-RBAC模型-RBAC模型的数据库表示
22-Ajax工作模式探讨-异步
23-Ajax工作模式探讨-同步
24-Ajax工作模型探讨-总结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值