Freemarker如何生成树形导航菜单(递归)
很多导航菜单是树形的,即一级一级往下分,这样的结构固然需要用递归来处理。
对于Freemarker来说,宏就相当于函数,其定义了签名及参数列表。
所以在freemarker页面应这样写:
<#macromenuTreemenus> <#ifmenus??&&menus?sizegt0> <#listmenusasmenu><#ifmenu.menuBeans??&&menu.menuBeans?sizegt0> <@menuTreemenus=menu.menuBeans/> #if> #list> #if> #macro> <@menuTreemenus=dto/> ${menu.menuName!} ${menu.url!} ${menu.permissionText!} ${menu.sortNo!} [编辑]
后台数据:
[
{
"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
}
]
}
]
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。