项目一众筹网05_03_树的节点的增删改查、radio、代码里面实现模拟用户点击重置、每次加载数据的时候都要考虑一下异步的问题、@RestController注解的使用、@RequestBody

系列文章目录

18-添加子节点-目标和思路

菜单的维护(增删改查)和我们前面所学的角色管理基本上是一样的了
首先要 有 思路:
在这里插入图片描述

19-添加子节点-前端:打开模态框

模态框这里我们直接复制粘贴就行了
在这里插入图片描述
主要是里面涉及的前端较多,手写的话,要花不少时间
我们到时候再来研究就好,毕竟不是前端工程师,不需要现在就对前端那么精通
在这里插入图片描述在这里插入图片描述
return false 这一段代码不要漏掉,这是取消默认行为不写这段的话,就直接跳转走了
在这里插入图片描述
在这里插入图片描述

其实我们不可忽略的一个事情就是我们在保存一个节点的时候 必须要知道父节点是谁
那么这个 pid怎么得到呢
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如上图,获取到父 id 后 打开模态框即可
下一步是确认添加,即 给 模态框里面的保存按钮添加单击相应函数,并且发送Ajax请求

20-添加子节点-前端:发送Ajax请求

在这里插入图片描述
在这里插入图片描述
这里的 $.trim() 意思是 删除字符串开始和末尾的空格

ajax的参数我们对照着实体类来写
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
清理表单我们还没做,要怎么做呢?

在这里插入图片描述
我们发现,点一下,重置,可以恢复到初始状态
在这里插入图片描述
那么我们就要想想,怎么我们在代码里面直接调用一下重置,不需要用户手点

其实也可以,我们还是要绑定一个单击响应函数
如下

代码里面实现模拟用户点击重置

在这里插入图片描述
click里面不传function就相当于点了一下按钮
接下来就是后端

21-添加子节点-后端

在这里插入图片描述
确认一下 id 是否 是 自增
在这里插入图片描述
在这里插入图片描述

bug发现 异步的问题 :每次加载数据的时候都要考虑一下异步的问题

有没有这种情况,我们还添加完就加载数据了异步当然是有可能的
所以我们要加个参数
在这里插入图片描述
这个问题不一定能每次重现,但是却是一个未知的隐患,应该必须要处理

在这里插入图片描述

还有一种处理方式就是代码的位置改动一下,如下。不过我们为了练习一下异步和同步推荐用上面的方式
工作中用这种比较简单,少写一行代码
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
这样添加就没啥问题了

22-更新节点-目标和思路

更新与新增最大的区别就是要回显
那么树形开发的回显怎么做
其中的思路之一是,我们拿到id然后去数据库里面查一下,拿到node对象,
再放到前端的模态框里面去
在这里插入图片描述

23-更新节点-前端:打开模态框

复制一下代码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后测一下点击修改 能不能打开模态框
效果如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
文本框简单
在这里插入图片描述
在这里插入图片描述
那单选按钮怎么处理呢?
注意要放数组里面
在这里插入图片描述
在这里插入图片描述
测试看看
在这里插入图片描述

24-更新节点-前端:发送Ajax请求

在这里插入图片描述

25-更新节点-后端

在这里插入图片描述
在这里插入图片描述
特别注意这里在这里插入图片描述

26-更新节点-小结

27-删除节点-目标和思路

在这里插入图片描述

28-删除节点-前端:打开模态框

在这里插入图片描述

最后效果:
在这里插入图片描述

29-删除节点-前端:发送Ajax请求

【看源码】
注意操作完成之后需要关闭模态框

30-删除节点-后端

【看源码】

在这里插入图片描述
注意
猜一下,如果这样获取参数会不会报错
在这里插入图片描述
答案是 会,错误码是415
错误码
在这里插入图片描述
在这里插入图片描述

即使是这样还是会报错,因为思路错了,@RequestBody 接收的必须是前端那边就是json对象的字符串数据,要进行转换
在这里插入图片描述
除非是像这样转换一下
在这里插入图片描述
前端请求传Json对象则后端使用@RequestParam;

前端请求传Json对象的字符串(前端必须要用contentType说明请求体内容)
则后端使用@RequestBody,参数类型有要求,必须要跟前端对应,一般为对象等

【非常重要的@RequestBody知识】当请求体是Json对象字符串的时候,我们就必须要告诉服务器

在这里插入图片描述
正确的案例:对象
在这里插入图片描述
正确案例2:数组
在这里插入图片描述
在这里插入图片描述
window.roleIdArray 这里面存的 是数组
在这里插入图片描述
这样后端才能用 @RequestBody List ids 去接收
在这里插入图片描述
这样后端才能用 @RequestBody List ids 去接收
在这里插入图片描述

扯回来,如果是最开始那样,前端请求的是Json对象则后端使用@RequestParam即可
如下 ,后端用@RequestParam接收参数即可解决
在这里插入图片描述

@RequestParam和@RequestBody 小总结

总结一下就是 三种前端传参方式,对应后端三种不同的接收参数的方式
在这里插入图片描述
在这里插入图片描述

31-@RestController注解=@ResponseBody+@Controller

我们发现一个问题,每个方法都有@ResponseBody 根据我们对springMvc 的理解,那么肯定可以提取
java最爱的就是各种提取了

我们下面就来试试
先注释一下代码
在这里插入图片描述
== 这样@ResponseBody 不用写了 @Controller 也不用写了==
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

分布式架构里面也经常会用@RestController

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值