Freemarker如何生成树形导航菜单(递归)

网友投稿 386 2023-04-02


Freemarker如何生成树形导航菜单(递归)

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

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

所以在freemarker页面应这样写:

<#macro menuTree menus>

<#if menus?? && menus?size gt 0>

<#list menus as menu>

${menu.menuName!}

${menu.url!}

${menu.permissionText!}

${menu.sortNo!}

[编辑]

<#if menu.menuBeans?? && menu.menuBeans?size gt 0>

<@menuTree menus = menu.menuBeans/>

#if>

#list>

#if>

#macro>

<@menuTree menus = dto />

后台数据:

[

{

"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,

elpmvIw "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,

"keywordelpmvIw": 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": nuelpmvIwll,

"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

}

]

}

]


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Shiro 控制并发登录人数限制及登录踢出的实现代码
下一篇:shiro并发人数登录控制的实现代码
相关文章

 发表评论

暂时没有评论,来抢沙发吧~