[SSM+layui]汽车出租系统011_菜单管理-删除有子节点就不能删改了xml要重启服务删除菜单的时候关联关系也要删除通过模型驱动获取值
Posted 平凡加班狗
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[SSM+layui]汽车出租系统011_菜单管理-删除有子节点就不能删改了xml要重启服务删除菜单的时候关联关系也要删除通过模型驱动获取值相关的知识,希望对你有一定的参考价值。
菜单管理-删除
首先是考虑思路,思路跟上一篇修改类似
需要注意的是,有子节点就不能删
那么怎么判断它有没有子节点呢?
所以在删除之前
前端
1.修改system/menu/menuRight.jsp
【触发点击删除事件的图】
【对应的删除事件的前端的方法图】
如果是二级菜单或者多级菜单,一定要要求它下面没有子节点了,才能删除
记得要把id传过去,不然,没办法根据条件去查询
注意这两个action 方法的 返回,一个(检查是否有子节点的)要返回code,一个(真的删除操作)要返回res
控制器
删除就写在上一篇修改的下面即可
这里面全是状态码
状态码,0代表成功 -1代表失败
我们加两个
首先把这个逻辑想通,逻辑对了再进行下一步
service实现类里面去写它的实现方法【图如下】
【service实现类里面去调用dao即Mapper】
Mapper里面怎么写呢
因为这里的返回值是integer 而上面我们又没有定义map
所以直接使用resultType去返回
注意逻辑 其实是 pid =id,所以为了好理解,其实上面也可以直接这样写:pid=#{id},这样好理解一点
注意:
通过模型驱动获取值
这样也是可以获取到值的,要注意,怎么获取前台的参数,有两种方式,一种是例如这样的:
request.getParameter(“name”)
但是这样的一般是用在哪里呢
这样的一般是直接的前台表单的的name属性
我们这里使用的这种,一定也要牢记,不然获取不到参数将会很痛苦
然后我们先测试一下,看看有节点的能不能正确给出提示,再写;另外一个action(删除)
注意,改了xml,要重启服务
这样逻辑就正常了
下面写真正的删除
删除
创建service接口
注意上面的deleteMenu方法为什么返回值要用void
所以实现类也要这么写
如果需要return,那么前面一个return之后,后面的就不执行了,所以我们要聪明一点,用void就显得非常睿智了,如下:
需要注意的是,这里
dao层即Mapper层,依旧可以使用返回值是int或者integer或者void都行,不影响,我们这里就用int,也很标准和规范
注意如果是int,实现类里面就写一下返回值就好了
下面看之前的哪个疑问,
这是因为,删除菜单的时候关联关系也要删除
删除菜单的时候关联关系也要删除
这里特别要注意,我们删除的是5张表里面的哪张表?
用户表、用户和角色关联关系表、角色表、角色和菜单关联关系表、菜单表
哪张呢?而且删了会不会对其它表有影响,没有影响就可以随意删
我们删掉菜单表之后,角色和菜单关联关系表里面对应的数据也应该删掉,因为没有意义了
然后是dao层即Mapper层
注意细节
最好是加上这个
@Param(“pid”)
然后是实现类,即maper.xml
正常来讲、我们关联关系表和菜单表,这两个表都要删除
测试,例如我们就删除这个2211,点击删除
我们发现实际上并没有删掉
查找一下原因,这里id没有传过去
hibernate需要注意的地方
如果只有1个参数的话,不需要用注解注明也行,会自动匹配
注意点2
这里不要写死,否则弹不出信息框的信息
至于为什么要写res.msg,而不是直接写res,这个当做是固定语法就好了,因为不写,前端报了layui语法的错误
总结
bug
我们把一个隐藏的问题抛出来,看怎么解决
当一个父节点所有菜单删除完毕之后,页面自动刷新
这样刷新不对,刷新完之后这页一个数据都没有了,是空白的,其实上一页还有,这样就容易给客户一个错觉,是不是所有数据全部没了
正确做法应该是自动跳转到上一页去,毕竟这第三页(假如是三页)已经没有数据了,本来就应该删掉,
所以其实我们不能再像以前那样刷新,特别是比如是第二页的最后一条数据,删了之后还停在第二页,那就只能是空白
解决办法,用layui里面的一个属性去解决
这个可以回调
下一篇解决
以上是关于[SSM+layui]汽车出租系统011_菜单管理-删除有子节点就不能删改了xml要重启服务删除菜单的时候关联关系也要删除通过模型驱动获取值的主要内容,如果未能解决你的问题,请参考以下文章
[SSM+layui]汽车出租系统07_RBAC权限管理及表分析说明怎么设置权限联合主键sql语句分析distinct去重
[SSM+layui]汽车出租系统013_角色(Role)管理CRUD(增删改查)批量删除的实现角色关联菜单搜索和替换操作要勾上区分大小写,否则会出问题
[SSM+layui]汽车出租系统06_加载左侧菜单(角色里面 type为1的就是超级管理员(这里)简单json如何转变成标准json)List和ArrayList的区别项目中空指针错误怎么解决(代码