springmvc+mybatis 无极限树形结构菜单
MYSQL数据库
查出数据调用封装类
List<Menu> menulist = new ArrayList<Menu>();menulist = menuService.menuList();MenuTree menuTree = new MenuTree();System.out.println(menuTree.menuList(menulist));
树形结构封装类
package com.sdmc.util;import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import com.sdmc.bean.Menu;public class MenuTree {public static Map<String,Object> mapArray = new LinkedHashMap<String, Object>();public List<Menu> menuCommon;public List<Object> list = new ArrayList<Object>();public List<Object> menuList(List<Menu> menu){ this.menuCommon = menu;for (Menu x : menu) { Map<String,Object> mapArr = new LinkedHashMap<String, Object>();if(x.getPid()==0){mapArr.put("id", x.getId());mapArr.put("name", x.getName());mapArr.put("level", x.getLevel());mapArr.put("pid", x.getPid()); mapArr.put("child", menuChild(x.getId())); list.add(mapArr);}} return list;}public List<?> menuChild(int id){List<Object> lists = new ArrayList<Object>();for(Menu a:menuCommon){Map<String,Object> childArray = new LinkedHashMap<String, Object>();if(a.getPid() == id){childArray.put("id", a.getId());childArray.put("name", a.getName());childArray.put("level", a.getLevel());childArray.put("pid", a.getPid());childArray.put("child", menuChild(a.getId())); lists.add(childArray);}}return lists;}
}
结果
[{id=1, name=内容管理, level=1, pid=0, child=[{id=6, name=栏目管理, level=2, pid=1, child=[{id=17, name=管理内容, level=3, pid=6, child=[{id=11, name=业务管理, level=4, pid=17, child=[]}]}]},{id=7, name=模型管理, level=2, pid=1, child=[]}]},
{id=2, name=用户管理, level=1, pid=0, child=[{id=10, name=会员管理, level=2, pid=2, child=[]}]}
]
springmvc+mybatis 无极限树形结构菜单相关推荐
- 自定义类 无极限树形结构菜单(繁杂版)
注意: 主要是理解形成树形菜单的思路,并不是粘贴就可以用的. 返回数据(如:效果图)到页面后,通过js做递归调用处理就好了. 树形菜单基础类: TreeGridCategory.java public ...
- vue 递归组件多级_Vue递归组件实现树形结构菜单
Tree 组件是递归类组件的典型代表,它常用于文件夹.组织架构.生物分类.国家地区等等,世间万物的大多数结构都是树形结构.使用树控件可以完整展现其中的层级关系,并具有展开收起选择等交互功能. 如图所示 ...
- php 递归生成树形菜单,递归生成树形结构菜单
public List listWithTree() { //1.查出所有菜单 List categoryEntities = categoryDao.selectList(null); //2.组装 ...
- Mybatis返回树形结构
在返回json数据时常常需要返回树形的结构,自己去写递归来构建树的话又太麻烦了. 下面介绍一种使用mybatis来返回树形结构的好方法 表结构展示 表里面需要记录父级Id MyBatis一对多coll ...
- mybatis mysql 树形结构_Mybatis查询树形结构数据
数据表的设计 创建数据表 对于树形结构的数据库设计通常是基于继承关系设计的,也就是通过父ID关联来实现的. 一张树形结构的数据表基本的三个字段:id(自己).name(名称)和parentid(父类编 ...
- zTree实现树形结构菜单
文章目录 一.简介 二.前端渲染效果 三.实现步骤 1.数据库表结构 2.引入zTree插件 3.树形结构实体类SysModule 4.表示层代码 5.js渲染部分 1.树初始化配置 2.加载数据树 ...
- mybatis 父子级树形结构查询
针对父子级数据目录查询, 以前都是逐级的去根据父级id查询子集目录, 查出后最后再在代码中拼成树形结构, 相当复杂,我们可以利用 mybatis 提供的 collection 标签自动组织树形结构, ...
- 超多树形结构的JavaScript菜单实例
超多树形结构的JavaScript菜单实例,树控菜单,有大家常用的展开折叠型,也就是节点树:还有的是多级的菜单,类似树型,右键菜单树,还有的是悬浮层树,都比较不错,希望大家喜欢. http://www ...
- SpringMVC+ZTree实现树形菜单权限配置
计划在开源项目里加入权限配置的功能,打算加入zTree实现树形结构. Team的Github开源项目链接:https://github.com/u014427391/jeeplatform 欢迎sta ...
最新文章
- SDWebImage内部实现过程
- Hadoop学习笔记(8) ——实战 做个倒排索引
- android 中的aidl
- 腾讯 监控系统服务器数据采集,实战低成本服务器搭建千万级数据采集系统
- Python实现一个数组除以一个数
- socket编程 —— 非阻塞socket (转)---例子已上传至文件中
- 黑客走开系列1:Python使用元组做函数实参让代码更安全!
- Intel的AVX2指令集解读
- http://mozilla.debian.net/
- Atitit 代码的导航 1.1.代码的层次导航 语句 函数方法 类 包 1.2.4.4. 代码可视化 流程图 一个方法内,多个代码行的关系图 语句to方法	2 1.3.4.5. 类图 类结构
- 整合并接班MSN!Win8版Skype完全体验
- [文摘20080226]领导法则 - 陈安之
- 不懂域名系统,何谈网络编程
- 台式计算机如何定时关机,台式电脑如何设置每天定时关机
- 你知道吗?计算机界也有诺贝尔奖!
- 元宇宙营业厅,数字技术融合,赋能实体经济
- CSS3实现径向渐变
- bitmap的六种压缩方式,Android图片压缩(转)
- 毕业论文写作中致谢词的常见写法及优秀范文
- 超好看的css动画特效实现
热门文章
- 【单片机笔记】关于RGB彩灯WS2812B的驱动
- 练习牛客网笔试题--前端js--60-双色球机选一注
- 爆刷PAT(甲级)——之【1148】 Werewolf - Simple Version(20 分)——思维
- 字母,数字,下划线,数字的正则表达式
- 如何快速设计一款门磁传感器产品?App即可确认门窗关闭
- 解决matlab 关于警告(warning)、错误(error)、异常(exception)与断言(assert)问题总结
- HarmonyOS——一个面向物联网的操作系统
- 推箱子android课程设计,推箱子游戏课程设计精选.doc
- mysql 什么是主键_mysql – 主键应该是什么?
- “CIO生存法则”培训——企业信息主管如何成功的“潜规则”