在使用bootdo框架的时候,发现目录菜单只有一级,在此多加几级菜单

<!-- 根目录 -->
<li th:each="menu : ${menus}"><a href="#"> <iclass="fa fa fa-bar-chart-o" th:class="${menu.attributes.icon}"></i><span class="nav-label" th:text="${menu.text}">目录</span> <spanclass="fa arrow"></span></a><!-- 在此添加子节点    分析 子节点会有目录和菜单两种情况 --><ul class="nav nav-second-level">    <!-- 遍历了每一个子菜单(二级) --><!--  判断是目录还是菜单    hasChildren这个判断更为直观 --><!-- 二级目录 --> <li th:each="cmenu : ${menu.children}">   <!--有孩子  目录   class="nav-label"   <span class="fa arrow"></span>  --><a  th:if=" ${cmenu.hasChildren} "><i class="fa fa fa-bar-chart-o" th:class="${cmenu.attributes.icon}"></i><span class="nav-label" href="graph_echarts.html" th:text="${cmenu.text}"th:href="${cmenu.attributes.url}">系统管理</span><span class="fa arrow"></span></a><!--无孩子  菜单  class="nav-label" --><a  th:if=" !${cmenu.hasChildren} "><i class="fa fa fa-bar-chart-o" th:class="${cmenu.attributes.icon}"></i><span class="J_menuItem" href="graph_echarts.html" th:text="${cmenu.text}"th:href="${cmenu.attributes.url}">系统管理</span>                               </a></li></ul></li>

多级菜单css自己调整下,不擅长
这样就完成了菜单 ,三级节点继续添加,遍历cmenu.children
目录和菜单在数据库用不同的标志,由于框架封装的时候未带标志,在此用有没有子节点判断

在此看看封装树的源代码

public static <T> List<Tree<T>> buildList(List<Tree<T>> nodes, String idParam) {if (nodes == null) {return null;}List<Tree<T>> topNodes = new ArrayList<Tree<T>>();for (Tree<T> children : nodes) {String pid = children.getParentId();if (pid == null || idParam.equals(pid)) {topNodes.add(children);continue;}for (Tree<T> parent : nodes) {String id = parent.getId();if (id != null && id.equals(pid)) {parent.getChildren().add(children);children.setHasParent(true);parent.setChildren(true);continue;}}}return topNodes;}

将数据库中每条记录封装成list传递进来,参数传递根节点的父亲,一般是0;
外循环将根节点添加到了返回的新的list中,别的节点先记录其父亲编号(目的就是取出非根目录的父节点),然后内循环重新遍历list,找到这个“别的节点的父亲”,将自己添加到他这个父亲中。返回新的list
/-- 稍微有点混乱
简单说,就是先找到一个节点的父亲编号 ,然后根据这个编号去找到他的父亲,然后将自己添加到他这
个父亲里面

thymeleaf 判断表达式:

gt:great than(大于)>
ge:great equal(大于等于)>=
eq:equal(等于)==
lt:less than(小于)<
le:less equal(小于等于)<=
ne:not equal(不等于)!=
<a th:if=" 1 eq 1 "> 哈哈(显示)</a>
<a th:if=" 1 eq 2 "> 哈哈(不显示)</a>

thyneleaf语法就不过多赘述。

bootdo增加多级菜单相关推荐

  1. Yii2默认界面增加多级菜单

    Yii 2.0.6 参考:http://blog.csdn.net/zhongyuan_1990/article/details/31789541 在css中,增加: .dropdown-submen ...

  2. qml中使用combobox实现多级菜单_excel实用技巧:如何构建多级下拉菜单

    编按:哈喽,大家好!说到做下拉菜单,小伙伴们都知道直接使用Excel中的数据验证就可以实现,但是二级.三级,甚至更多级的下拉菜单,可能就有点蒙圈了.其实用Excel制作三级下拉菜单,一点都不难,它就跟 ...

  3. Python多级菜单

    作业2:多级菜单 三级菜单 可依次选择进入各子菜单 所需新知识点:列表.字典 1.流程图 2.登录界面,输入对应索引 #!/usr/bin/env python3 # -*- coding:utf-8 ...

  4. qml中使用combobox实现多级菜单_Excel教程:还不会做Excel三级下拉菜单?其实它跟复制粘贴一样简单...

    关注回复[目录]学习113篇Excel教程 全套Excel视频教程,扫码观看 编按: 哈喽,大家好!说到做下拉菜单,小伙伴们都知道直接使用Excel中的数据验证就可以实现,但是二级.三级,甚至更多级的 ...

  5. 关于若依框架多级菜单的设置

    最近从php转到java,并且被要求用了一个叫若依的框架.然后有个需求需要用到三级菜单.按照二级菜单配置后前端的element-ui显示找不到该model.最后看官方文档,外加csdn的一个博客才给解 ...

  6. 如何为WordPress的网站建立多级菜单?

    如何为WordPress的网站建立多级菜单? 一说到建设网站,当然几乎离不开导航菜单.它是如此的重要,是我们网站导航员.如果一个网站的内容非常丰富的话,那么多级菜单或许就是需要的.不可避免,我们就来看 ...

  7. 【STM32】基于STM32F103C8T6的水质检测系统设计(声光报警、多级菜单)

    需求 1.检测参数:水温.TDS.浊度.PH 2.超出阈值声光报警 3.LCD显示目标参数的测量结果 4.测量模式:单参数测量.所有参数表同时测量 切换方式:按键切换 原理 单总线技术 单总线技术采用 ...

  8. mysql vue 菜谱_vue+ java 实现多级菜单递归效果

    效果如图: 大概思路:树形视图使用的是vue官方事例代码,java负责封装数据,按照vue官方事例的数据结构封装数据即可.有两个需要关注的点: 1.官方事例的数据结构是一个对象里面包含着集合,而不是一 ...

  9. day1 作业二:多级菜单操作

    作业二:多级菜单 (1)三级菜单 (2)可以次选择进入各子菜单 (3)所需新知识点:列表.字典 要求:输入b返回上一层,输入q退出整个程序 思路:三级菜单第一级别是省,第二级别是市,第三级别是县,用户 ...

  10. 【Pthon入门学习】多级菜单小例子

    1 menu_list = { 2 '北京':{ 3 '昌平':{ 4 '回龙观':{ 5 '和谐家园':{}, 6 '矩阵小区':{}, 7 '北店家园':{} 8 }, 9 '沙河':{ 10 ' ...

最新文章

  1. Spring boot centos部署启动停止脚本
  2. Leaflet中使用Leaflet.AnimatedMarker插件实现要素轨迹移动
  3. Nginx 最全操作总结
  4. 使用Fiddler监控使用RestTemplate发送网络请求的Java应用
  5. 微信微擎口红机带闯三关送礼品完整源码+精美UI支持海报推广
  6. 为什么Redux需要reducer成为“纯函数”
  7. ADFS部署过程中设置network service对证书的读取权限
  8. Cesium:鼠标移动事件判断是否在地球上操作以及获取经纬度
  9. [apk破解]AirPin,无告用户书,无升级提示
  10. 缉拿IP冲突之后的“真凶”
  11. KEIL MDK中 warning: #223-D: function “xxx“ declared implicitly 解决方法
  12. ubuntu使用cmake编译coffe
  13. 量化交易1-backtrader介绍
  14. 服务化治理脚本:show-busiest-java-threads。
  15. unity 3D物体添加 点击事件
  16. 沙龙报名 | 区块链落地难? 六位专家揭秘京东区块链全景应用
  17. Codeforces Global Round 2 B. Alyona and a Narrow Fridge(二分)
  18. VMware的虚拟机连不上网
  19. paper to do
  20. linux dae文件下载,linux dae命令详解.doc

热门文章

  1. PMP 考点 第十一章 项目风险管理
  2. 图解FPGrowth 算法
  3. 2022-2028年中国智能机床行业市场专项调研及投资前景规划报告
  4. MATLAB机械动力分析,基于MATLAB的柔性机械臂动力学分析
  5. 通俗易懂机器人运动学左乘右乘理解
  6. exescope使用
  7. 【快代理API】设置IP白名单
  8. 数据库系统工程师考点
  9. python实现键盘打字练习
  10. Latex 编译错误 Error Launching Console Application XeLaTeX ...系统找不到指定的文件。