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

Posted 平凡加班狗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了项目一众筹网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工作模型探讨-总结

以上是关于项目一众筹网03_2_管理员维护_单条数据删除_获取单条数据的id__前端传参给后端的两种方式_a标签才有href属性_全面了解各种转发和重定向方式的主要内容,如果未能解决你的问题,请参考以下文章

项目一众筹网04_4_角色维护删除_单条删除和批量删除怎么实现_确认提示,,你真的要删除吗__@RequestBody和@ResponseBody结合使用_全选功能_前端获取id发到后端_ajax发送

项目一众筹网03_4_管理员维护_更新_增删查改全部完结_隐藏域的使用

项目一众筹网03_3_管理员维护_新增_保证每个用户的账号唯一_唯一约束_怎么得知原数据里面有没有重复的_MD5加密_生成创建时间_异常类处理

项目一众筹网03_1_管理员维护_页码导航条bug解决_关键词查询_主页搜索框模糊查询_模糊查询怎么传参页码导航条优化

项目一众筹网03_5_工作模式探讨同步和异步探讨

项目一众筹网03_5_RBAC(权限管理)模型-概述