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

本文介绍了如何使用Freemarker的宏和递归来生成树形导航菜单。通过后台提供的数据结构,展示了如何处理菜单项及其子菜单,包括系统管理和用户管理等不同模块。示例数据包含多个层级的菜单节点,每个节点包含名称、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/li

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Freemarker和Beetl都是流行的模板引擎,可以用于生成Java代码。它们是基于模板和数据之间的分离原则,通过填充模板中的占位符来生成最终的代码。 Freemarker是一个开源的Java模板引擎,它提供了丰富的模板语法和功能,可以应用于各种代码生成场景。在使用Freemarker生成Java代码时,我们需要定义好模板文件,并通过传入数据模型来填充模板中的占位符。数据模型可以是Java对象、Map等,模板中的变量会根据数据模型中的属性值进行替换。通过指定输出文件的路径,我们可以将生成Java代码保存到相应的位置。Freemarker还支持自定义的函数、宏和指令,可以方便地扩展和控制代码生成的逻辑。 Beetl是另一个优秀的Java模板引擎,它提供了类似于Freemarker的模板语法和功能。使用Beetl生成Java代码的过程类似于Freemarker,我们也需要定义好模板文件,并传入数据模型来填充模板中的占位符。Beetl使用一种特殊的语法来表示变量和表达式,它能够根据模板文件中的宏指令和函数调用来生成Java代码。Beetl还支持动态渲染和条件判断等高级特性,可以用来生成更加灵活和复杂的Java代码。 总的来说,无论是Freemarker还是Beetl,它们都可以很好地应用于Java代码生成的场景。使用模板引擎可以将代码生成的过程标准化和自动化,提高开发效率并减少编写重复代码的工作量。选择Freemarker还是Beetl,可以根据个人的偏好和项目需求进行决策。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值