本文实例为大家分享了java实现递归菜单树的具体代码,供大家参考,具体内容如下
1.表结构
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for menu
-- ----------------------------
DROP TABLE IF EXISTS `menu`;
CREATE TABLE `menu` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`menu_name` varchar(64) NOT NULL COMMENT '菜单名称',
`order_num` int(11) DEFAULT NULL COMMENT '菜单顺序',
`url` varchar(64) DEFAULT NULL COMMENT '菜单路径',
`pid` varchar(11) DEFAULT NULL COMMENT '上级Id',
`icon` varchar(255) DEFAULT NULL COMMENT '菜单图标',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of menu
-- ----------------------------
INSERT INTO `menu` VALUES ('1', '系统管理', '1', '', '0', null);
INSERT INTO `menu` VALUES ('2', '轨迹查询', '2', '', '0', null);
INSERT INTO `menu` VALUES ('3', '设备信息', '3', '', '0', null);
INSERT INTO `menu` VALUES ('4', '用户信息', '1', '', '1', null);
INSERT INTO `menu` VALUES ('5', '客户信息', '2', null, '1', null);
INSERT INTO `menu` VALUES ('6', '用户资料', '1', null, '4', null);
INSERT INTO `menu` VALUES ('7', '客户资料', '1', null, '5', null);
INSERT INTO `menu` VALUES ('8', '切割机', '1', null, '3', null);
INSERT INTO `menu` VALUES ('9', '铲车', '2', null, '3', null);
INSERT INTO `menu` VALUES ('10', '割片', '1', null, '8', null);
2.菜单实体类
import lombok.Data;
import java.io.Serializable;
import java.util.List;
import javax.persistence.*;
@Data
@Table(name = "menu")
public class Menu implements Serializable {
private static final long serialVersionUID = 1L;
//
@Id
private Integer id;
//菜单名称
@Column(name = "menu_name")
private String menuName;
//菜单顺序
@Column(name = "order_num")
private Integer orderNum;
//菜单路径
@Column(name = "url")
private String url;
//上级Id
@Column(name = "pid")
private String pid;
//菜单图标
@Column(name = "icon")
private String icon;
//子菜单
@Transient
private List
3.菜单树
public List
4.测试
{
"status": 200,
"message": "操作成功",
"data": [
{
"id": 1,
"menuName": "系统管理",
"orderNum": 1,
"url": "",
"pid": "0",
"icon": null,
"children": [
{
"id": 4,
"menuName": "用户信息",
"orderNum": 1,
"url": "",
"pid": "1",
"icon": null,
"children": [
{
"id": 6,
"menuName": "用户资料",
"orderNum": 1,
"url": null,
"pid": "4",
"icon": null,
"children": []
}
]
},
{
"id": 5,
"menuName": "客户信息",
"orderNum": 2,
"url": null,
"pid": "1",
"icon": null,
"children": [
{
"id": 7,
"menuName": "客户资料",
"orderNum": 1,
"url": null,
"pid": "5",
"icon": null,
"children": []
}
]
}
]
},
{
"id": 2,
"menuName": "轨迹查询",
"orderNum": 2,
"url": "",
"pid": "0",
"icon": null,
"children": []
},
{
"id": 3,
"menuName": "设备信息",
"orderNum": 3,
"url": "",
"pid": "0",
"icon": null,
"children": [
{
"id": 8,
"menuName": "切割机",
"orderNum": 1,
"url": null,
"pid": "3",
"icon": null,
"children": [
{
"id": 10,
"menuName": "割片",
"orderNum": 1,
"url": null,
"pid": "8",
"icon": null,
"children": []
}
]
},
{
"id": 9,
"menuName": "铲车",
"orderNum": 2,
"url": null,
"pid": "3",
"icon": null,
"children": []
}
]
}
]
}
5.菜单树工具类
菜单树工具类
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。



