这个二级菜单不同于上次写的多级菜单的实现,此次目的关联两张表,上次的多级菜单是一张表,所以区别在此,实现起来也有所不同。

实现图如下:

这里是一级列表,对应的是组名(RescueUnit)

这里是二级展开列表,对应的是组名下的人员(Staff)

Action代码如下:

public String middle() {setNodestree(nodestree());return "middle";}public String nodestree() {JSONArray jsonArray = new JSONArray();List<RescueUnit> rescueUnitAllList = rescueUnitService.getAllRescueUnit();for (RescueUnit mg : rescueUnitAllList) {Map<Object, Object> jsonMapList = new HashMap<Object, Object>();jsonMapList.put("name", mg.getUnitname());jsonMapList.put("id", mg.getId());if (mg.getChildren() != null) {getChildrenArray(mg, jsonMapList);}jsonArray.add(jsonMapList);}return jsonArray.toString();}private void getChildrenArray(RescueUnit mg, Map<Object, Object> jsonMapList) {JSONArray childrenArray = new JSONArray();for (Staff children : mg.getChildren()) {Map<Object, Object> childrenMap = new HashMap<Object, Object>();childrenMap.put("name", children.getName());childrenMap.put("id", children.getId());jsonMapList.put("rescueUnit_id", children.getRescueUnit() == null ? "" : children.getRescueUnit().getId());childrenArray.add(childrenMap);}jsonMapList.put("children", childrenArray);}

这里是JS的代码:

 <script src="/skin/nt/lib/layui/layui.js"></script><script><!--这里是树形菜单的js-->layui.use('tree', function(){layui.tree({elem: '#ele4' //指定元素,target: '_blank' //是否新选项卡打开(比如节点返回href才有效),nodes:${(nodestree)!} })});</script>

<ul   id="ele4"></ul> //采用这种方式调用树

上述action代码中,获取全部的list方法在Service以及dao层都有定义,定义如下:

service层:

public interface RescueUnitService extends BaseService<RescueUnit,String>{public List<RescueUnit> getAllRescueUnit();
}

@Service
public class RescueUnitServiceImpl extends BaseServiceImpl<RescueUnit, String> implements RescueUnitService {@Resourceprivate RescueUnitDao rescueUnitDao;@Resourcepublic void setCatsiccodesDao(RescueUnitDao rescueUnitDao) {this.rescueUnitDao = rescueUnitDao;super.setBaseDao(rescueUnitDao);}public List<RescueUnit> getAllRescueUnit() {return rescueUnitDao.getAllRescueUnit();}
}

dao层:

public interface RescueUnitDao extends BaseDao<RescueUnit,String>{public List<RescueUnit> getAllRescueUnit();
}
@Repository
public class RescueUnitIDaoImpl extends BaseDaoImpl<RescueUnit, String> implements RescueUnitDao {public List<RescueUnit> getAllRescueUnit() {String hql = "from RescueUnit rescueUnit order by orderList ";return getSession().createQuery(hql).list();}
}

Java的二级动态菜单实现相关推荐

  1. java 实现二级动态菜单功能

    我们通过一张表实现二级菜单的封装功能,数据库表中存在一张菜单表,t_menu表,字段有id,menu_name,menu_url,parent_id,由于个人问题(没有在里面加logo什么的,如果小伙 ...

  2. Java制作二级导航菜单_纯CSS实现超简单的二级下拉导航菜单代码

    本文实例讲述了纯CSS实现超简单的二级下拉导航菜单代码.分享给大家供大家参考.具体如下: 这是一款纯CSS菜单,二级下拉导航效果,是最简洁的CSS导航菜单,兼容性也很棒,IE7/8.火狐等都支持,而且 ...

  3. java web动态菜单设计_spring-boot与模板引擎:使用metisMenu实现动态多级菜单

    系列传送门 在web开发中,特别是后台管理工具的开发,经常用到纵向的多级菜单. 但是常用的Bootstrap仅能支持到2级菜单,对于3级及3级以上的菜单的显示,却无能为力. 下面我将使用另一个jQue ...

  4. java ajax 联动菜单_二级联动菜单代码(AJAX JAVA).

    二级联动菜单代码(AJAX+JAVA)珍藏 [java] pageEncoding="UTF-8"%> 二级菜单联动演示 var req; window.οnlοad=fun ...

  5. java 二级联动_java实现的二级联动菜单效果

    本文实例讲述了java实现的二级联动菜单效果.分享给大家供大家参考,具体如下: JSP代码: 二级菜单联动演示 var req; window.οnlοad=function() {//页面加载时的函 ...

  6. java工具栏的工具提示,动态菜单项、状态条提示、工具条提示问题

    问题的提出: 一个应用程序想要动态改变菜单项.使用CCmdUI::SetText("Menu Text")可以改变菜单文本,但是如何动态改变工具条和状态条的文本呢? 有几种策略,避 ...

  7. java中遍历树形菜单,你可能不知道还有这样的方法

    版权声明:本文为CSDN博主「穆雄雄」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/qq_34137397/ ...

  8. Vue3 中如何加载动态菜单?

    松哥之前写了两篇文章和大家分享了 TienChin 项目中的菜单数据问题,还没看过的小伙伴请戳这里: Vue 里,多级菜单要如何设计才显得专业? TienChin 项目动态菜单接口分析 这两篇文章主要 ...

  9. Java折叠_[Java教程]Jquery中菜单的展开和折叠

    [Java教程]Jquery中菜单的展开和折叠 0 2018-08-15 16:03:38 标签内容 您好:alee 宿舍管理员 密码管理 修改密码 宿舍管理 学生宿舍查询 学生宿舍新增 学生宿舍分配 ...

  10. 动态菜单,根据登录用户权限返回不同菜单,登录完成跳转到不同的首页

    1.动态菜单,前提是根据后端返回的不同菜单,展示给不同的人,路由一定要和菜单返回的URL保持一致, 2.前提是,路由中不要写死redirect到某一个指定 文件,因为登录的用户不一定有这个权限 3.流 ...

最新文章

  1. Matplotlib基础绘图功能 — 以折线图为例
  2. 人工智能:从经典计算机到量子计算机,弱AI进阶到强AI时代?
  3. DNN(DotNetNuke)研究资源
  4. 【学习笔记】ABAP OOD设计模式 - 桥接模式
  5. PHP中设置一个严格30分钟过期Session面试题的4种答案
  6. 正则表达式高级用法【原】
  7. 记录一下SpringCloud-Gateway使用lb动态路由遇到的坑
  8. C语言课后习题(36)
  9. 补习系列(4)-springboot 参数校验详解
  10. 【Java从0到架构师】Spring - AOP
  11. 《开源容器云OpenShift:构建基于Kubernetes的企业应用云平台》一2.3 完善OpenShift集群...
  12. 12c rac 实例无法启动之磁盘组空间耗尽
  13. 图书馆管理系统前端ajax接口,基于AJAX的图书馆管理系统的设计与实现
  14. matlab数值积分中函数积分的4种方法
  15. December in English(2017)
  16. php 微信公众号自定义菜单栏,php实现微信公众号创建自定义菜单
  17. mac paralles内 windows虚机 连接 linux虚机
  18. 视频音频提取器推荐:快速提取视频中的音频!
  19. 如何把标签输出为PDF文件
  20. YOLOv5剪枝 | 模型剪枝理论篇

热门文章

  1. [转载] 七龙珠第一部——第114话 悟空的愿望 卡林大人好为难
  2. Android 学习 Android应用的两种架构
  3. sudo: vim:找不到命令_linux常用命令(3)
  4. C++对ascii文件按行和分隔符读取并显示
  5. 安卓机器人做图软件_移动机器人领域,除了工业(安卓)一体机,工控机也必不可少...
  6. DPDK - mlx5 drop action 性能 patch
  7. 树莓派——使用SDK定期备份本地文件到OSS(自用)
  8. 浅谈Redis基本数据类型底层编码(含C源码)
  9. C/C++之回调函数
  10. OpenCasCade默认的小坐标系的构建