项目一众筹网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加密_生成创建时间_异常类处理