java垂直多级导航栏_Freemarker如何生成树形导航菜单(递归)

本文详细介绍了如何使用Freemarker的宏和递归来生成Java垂直多级导航菜单。通过后台数据结构展示,解释了如何遍历并构建树形菜单,包括菜单项的属性如名称、URL和权限文本等。
摘要由CSDN通过智能技术生成

很多导航菜单是树形的,即一级一级往下分,这样的结构固然需要用递归来处理。

对于Freemarker 来说,宏就相当于函数,其定义了签名及参数列表。

所以在freemarker页面应这样写:

${menu.menuName!}

${menu.url!}

${menu.permissionText!}

${menu.sortNo!}

[编辑]

#if>

#list>

#if>

#macro>

后台数据:

[

{

"id": 1,

"enable": true,

"remark": null,

"createBy": 1,

"createTime": 1503546411000,

"updateBy": 1,

"updateTime": 1503546415000,

"keyword": null,

"menuName": "系统管理",

"menuType": 1,

"parentId": null,

"iconcls": null,

"url": null,

"expand": null,

"sortNo": null,

"permission": null,

"moduleId": 1,

"parentName": null,

"leaf": 0,

"typeName": null,

"permissionText": null,

"menuBeans": [

{

"id": 7,

"enable": true,

"remark": null,

"createBy": 1,

"createTime": 1503546411000,

"updateBy": 1,

"updateTime": 1503546415000,

"keyword": null,

"menuName": "模块管理",

"menuType": 1,

"parentId": 1,

"iconcls": null,

"url": "/module/list",

"expand": null,

"sortNo": null,

"permission": null,

"moduleId": 1,

"parentName": null,

"leaf": 1,

"typeName": null,

"permissionText": null,

"menuBeans": null

},

{

"id": 3,

"enable": true,

"remark": null,

"createBy": 1,

"createTime": 1503546411000,

"updateBy": 1,

"updateTime": 1503546415000,

"keyword": null,

"menuName": "菜单管理",

"menuType": 1,

"parentId": 1,

"iconcls": null,

"url": "/menu/list",

"expand": null,

"sortNo": null,

"permission": "admin:add",

"moduleId": 1,

"parentName": null,

"leaf": 1,

"typeName": null,

"permissionText": null,

"menuBeans": null

}

]

},

{

"id": 2,

"enable": true,

"remark": null,

"createBy": 1,

"createTime": 1503546411000,

"updateBy": 1,

"updateTime": 1503546415000,

"keyword": null,

"menuName": "用户管理",

"menuType": 1,

"parentId": null,

"iconcls": null,

"url": null,

"expand": null,

"sortNo": null,

"permission": null,

"moduleId": 1,

"parentName": null,

"leaf": 0,

"typeName": null,

"permissionText": null,

"menuBeans": [

{

"id": 9,

"enable": true,

"remark": null,

"createBy": 1,

"createTime": 1503546411000,

"updateBy": 1,

"updateTime": 1503546415000,

"keyword": null,

"menuName": "供应商管理",

"menuType": 1,

"parentId": 2,

"iconcls": null,

"url": null,

"expand": null,

"sortNo": null,

"permission": null,

"moduleId": 1,

"parentName": null,

"leaf": 1,

"typeName": null,

"permissionText": null,

"menuBeans": null

},

{

"id": 8,

"enable": true,

"remark": null,

"createBy": 1,

"createTime": 1503546411000,

"updateBy": 1,

"updateTime": 1503546415000,

"keyword": null,

"menuName": "部门管理",

"menuType": 1,

"parentId": 2,

"iconcls": null,

"url": null,

"expand": null,

"sortNo": null,

"permission": null,

"moduleId": 1,

"parentName": null,

"leaf": 1,

"typeName": null,

"permissionText": null,

"menuBeans": null

},

{

"id": 6,

"enable": true,

"remark": null,

"createBy": 1,

"createTime": 1503546411000,

"updateBy": 1,

"updateTime": 1503546415000,

"keyword": null,

"menuName": "权限管理",

"menuType": 1,

"parentId": 2,

"iconcls": null,

"url": "/user/list-6",

"expand": null,

"sortNo": null,

"permission": null,

"moduleId": 1,

"parentName": null,

"leaf": 1,

"typeName": null,

"permissionText": null,

"menuBeans": null

},

{

"id": 5,

"enable": true,

"remark": null,

"createBy": 1,

"createTime": 1503546411000,

"updateBy": 1,

"updateTime": 1503546415000,

"keyword": null,

"menuName": "角色管理",

"menuType": 1,

"parentId": 2,

"iconcls": null,

"url": "/user/list-5",

"expand": null,

"sortNo": null,

"permission": null,

"moduleId": 1,

"parentName": null,

"leaf": 1,

"typeName": null,

"permissionText": null,

"menuBeans": null

},

{

"id": 4,

"enable": true,

"remark": null,

"createBy": 1,

"createTime": 1503546411000,

"updateBy": 1,

"updateTime": 1503546415000,

"keyword": null,

"menuName": "分销商管理",

"menuType": 1,

"parentId": 2,

"iconcls": null,

"url": "/user/add-4",

"expand": null,

"sortNo": null,

"permission": null,

"moduleId": 1,

"parentName": null,

"leaf": 1,

"typeName": null,

"permissionText": null,

"menuBeans": null

},

{

"id": 10,

"enable": true,

"remark": null,

"createBy": 1,

"createTime": 1503546411000,

"updateBy": 1,

"updateTime": 1503546415000,

"keyword": null,

"menuName": "员工管理",

"menuType": 1,

"parentId": 2,

"iconcls": null,

"url": null,

"expand": null,

"sortNo": null,

"permission": null,

"moduleId": 1,

"parentName": null,

"leaf": 1,

"typeName": null,

"permissionText": null,

"menuBeans": null

}

]

}

]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值