1.3 系统菜单

该博客介绍了如何使用Java和JavaScript实现系统菜单管理,包括基本菜单和层级管理,核心在于parentId的使用。通过Controller进行权限管理,动态展示员工可见的菜单。在页面效果部分,详细说明了左侧栏的实现,利用zTree插件处理静态和动态树状菜单。在动态菜单处理中,当展开父节点时,后台会发送请求加载子菜单数据。
摘要由CSDN通过智能技术生成

基本菜单、层级管理

  • 功能实现:根据父级菜单,查出所有子菜单
核心:parentId
  • 新建SystemMenuQueryObject,存储parentId
  • SQL都是内联查询,加parentId是否为空判断,用于query拼接
<sql id="conditions_sql">
<where>
    <if test="parentId==null">
        and child.parent_id is null
    </if>
    <if test="parentId!=null">
        and child.parent_id =#{parentId}
    </if>
</where>
</sql>

queryForCount/queryForList都需要,必须使用左外连接,否则父菜单为空时查询不出来
<include refid="conditions_sql"/>



  • 新增、编辑、查看下级都与父级菜单有关,都要传parentId
Controller
  • List方法

    1. 查询出此级的父级菜单
    2. 新建Map集合,将父级菜单的name和id封装,获取父菜单的父菜单,重复上一步操作
    获取父菜单的父菜单,必须从数据库中查询,以保留超过两级的父菜单。
    parent = systemMenuService.selectByPrimaryKey(parent.getParent().getId());
    
    1. 将集合中的元素顺序颠倒,往模型中增加parents集合
    public String list(Model model, @ModelAttribute("qo") SystemMenuQueryObject queryObject) {
    //查询出所有的父级菜单
    SystemMenu parent = systemMenuService
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值