bootdo增加多级菜单
在使用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增加多级菜单相关推荐
- Yii2默认界面增加多级菜单
Yii 2.0.6 参考:http://blog.csdn.net/zhongyuan_1990/article/details/31789541 在css中,增加: .dropdown-submen ...
- qml中使用combobox实现多级菜单_excel实用技巧:如何构建多级下拉菜单
编按:哈喽,大家好!说到做下拉菜单,小伙伴们都知道直接使用Excel中的数据验证就可以实现,但是二级.三级,甚至更多级的下拉菜单,可能就有点蒙圈了.其实用Excel制作三级下拉菜单,一点都不难,它就跟 ...
- Python多级菜单
作业2:多级菜单 三级菜单 可依次选择进入各子菜单 所需新知识点:列表.字典 1.流程图 2.登录界面,输入对应索引 #!/usr/bin/env python3 # -*- coding:utf-8 ...
- qml中使用combobox实现多级菜单_Excel教程:还不会做Excel三级下拉菜单?其实它跟复制粘贴一样简单...
关注回复[目录]学习113篇Excel教程 全套Excel视频教程,扫码观看 编按: 哈喽,大家好!说到做下拉菜单,小伙伴们都知道直接使用Excel中的数据验证就可以实现,但是二级.三级,甚至更多级的 ...
- 关于若依框架多级菜单的设置
最近从php转到java,并且被要求用了一个叫若依的框架.然后有个需求需要用到三级菜单.按照二级菜单配置后前端的element-ui显示找不到该model.最后看官方文档,外加csdn的一个博客才给解 ...
- 如何为WordPress的网站建立多级菜单?
如何为WordPress的网站建立多级菜单? 一说到建设网站,当然几乎离不开导航菜单.它是如此的重要,是我们网站导航员.如果一个网站的内容非常丰富的话,那么多级菜单或许就是需要的.不可避免,我们就来看 ...
- 【STM32】基于STM32F103C8T6的水质检测系统设计(声光报警、多级菜单)
需求 1.检测参数:水温.TDS.浊度.PH 2.超出阈值声光报警 3.LCD显示目标参数的测量结果 4.测量模式:单参数测量.所有参数表同时测量 切换方式:按键切换 原理 单总线技术 单总线技术采用 ...
- mysql vue 菜谱_vue+ java 实现多级菜单递归效果
效果如图: 大概思路:树形视图使用的是vue官方事例代码,java负责封装数据,按照vue官方事例的数据结构封装数据即可.有两个需要关注的点: 1.官方事例的数据结构是一个对象里面包含着集合,而不是一 ...
- day1 作业二:多级菜单操作
作业二:多级菜单 (1)三级菜单 (2)可以次选择进入各子菜单 (3)所需新知识点:列表.字典 要求:输入b返回上一层,输入q退出整个程序 思路:三级菜单第一级别是省,第二级别是市,第三级别是县,用户 ...
- 【Pthon入门学习】多级菜单小例子
1 menu_list = { 2 '北京':{ 3 '昌平':{ 4 '回龙观':{ 5 '和谐家园':{}, 6 '矩阵小区':{}, 7 '北店家园':{} 8 }, 9 '沙河':{ 10 ' ...
最新文章
- Spring boot centos部署启动停止脚本
- Leaflet中使用Leaflet.AnimatedMarker插件实现要素轨迹移动
- Nginx 最全操作总结
- 使用Fiddler监控使用RestTemplate发送网络请求的Java应用
- 微信微擎口红机带闯三关送礼品完整源码+精美UI支持海报推广
- 为什么Redux需要reducer成为“纯函数”
- ADFS部署过程中设置network service对证书的读取权限
- Cesium:鼠标移动事件判断是否在地球上操作以及获取经纬度
- [apk破解]AirPin,无告用户书,无升级提示
- 缉拿IP冲突之后的“真凶”
- KEIL MDK中 warning: #223-D: function “xxx“ declared implicitly 解决方法
- ubuntu使用cmake编译coffe
- 量化交易1-backtrader介绍
- 服务化治理脚本:show-busiest-java-threads。
- unity 3D物体添加 点击事件
- 沙龙报名 | 区块链落地难? 六位专家揭秘京东区块链全景应用
- Codeforces Global Round 2 B. Alyona and a Narrow Fridge(二分)
- VMware的虚拟机连不上网
- paper to do
- linux dae文件下载,linux dae命令详解.doc