freemarker 遍历树形菜单
<ul class="nav sidebar-menu">
<!--Dashboard-->
<!-- 定义遍历方法 -->
<#macro bpTree children>
<#if children?? && children?size gt 0> <!-- 判断是否为空,并且长度是否大于0 -->
<!-- 不为空 开始遍历 -->
<#list children as child>
<#if child.nodes?? && child.nodes?size gt 0>
<!-- 如果是拥有子节点 -->
<li><a href="#" class="menu-dropdown"> <i
class="menu-icon ${child.icon!''}"></i> <span class="menu-text">
${child.title!''} </span> <i class="menu-expand"></i>
</a>
<ul class="submenu">
<@bpTree children=child.nodes />
</ul>
</li>
<#else>
<!-- 没有子节点! -->
<li><a href="javascript:void(0)" data-url="${child.url!''}"><i class="menu-icon ${child.icon!''}" ></i><!-- 图标 -->
<span class="menu-text"> ${child.title!''} </span></a>
</li>
</#if>
</#list>
</#if>
</#macro> <@bpTree children=treeMenu /> <!-- 调用方法 -->
</ul>
参考以上代码,童叟无欺,freemarker是真的强大啊。。如果是使用jsp。。。恐怕得自定义标签了--
freemarker 遍历树形菜单的更多相关文章
- PHP递归获得树形菜单和遍历文件夹下的所有文件以及子文件夹
PHP递归获得树形菜单和遍历文件夹下的所有文件以及子文件夹 一.使用递归获取树形菜单 数据表category(id,name,parent_id) <?php class category{ / ...
- java 传入list集合 返回树形菜单,for循环遍历
public List<SysPermissionVO> getTreeMenu(List<SysPermissionVO> list,SysPermissionVO sysP ...
- ERP存储过程的调用和树形菜单的加载(四)
引用:DAL:System.Data.SqlClient;System.Data; namespace CommTool { public class SqlComm { /// <summar ...
- 议:如何将树形菜单形式的数据转化成HTML的二维表(相同内容需合并单元格)
一般做OA类管理系统,经常涉及到“组织架构”的概念,那么像这种有上下层级关系的数据一般会做成树形菜单的方式显示,底层代码必定会用到递归算法.这篇随笔的目的就是要谈谈除了用树形菜单来显示这种上下层级关系 ...
- Unity 引擎UGUI之自定义树形菜单(TreeView)
先上几张效果图: 如果你需要的也是这种效果,那你就来对地方了! 目前,我们这个树形菜单展现出来的功能如下: 1.可以动态配置数据源: 2.点击每个元素的上下文菜单按钮(也就是图中的三 ...
- jQuery 树形菜单
树形菜单 在 jQuery easyu中其左侧的主菜单使用的是 easyui 中的 tree 组件,不是太熟悉,不过感觉不是太好用. 比如 easyui 中的 tree 需要单击分叉节点前的小三角,才 ...
- JS树形菜单
超全的JS树形菜单源代码共享(有实例图) 树形菜单是很常用的效果,常用在管理软件当中,但是一套树形菜单已经不能满足需求,所以如果能有一套比较全面的树形菜单JS特效代码,将会非常方便,下面懒人萱将超全的 ...
- 简单实用的二级树形菜单hovertree
原创 hovertree是一个仿京东的树形菜单jquery插件,暂时有银色和绿色两种. 官方网址:http://keleyi.com/jq/hovertree/欢迎下载使用 查看绿色效果:http:/ ...
- Vue.js 递归组件实现树形菜单
最近看了 Vue.js 的递归组件,实现了一个最基本的树形菜单. 项目结构: main.js 作为入口,很简单: import Vue from 'vue' Vue.config.debug = tr ...
随机推荐
- 数据从HDFS-->HIVE-->HBASE 执行过程
1.数据已经load进去hdfs 2.hive.hbase已经安装成功(我用的是hadoop 2.4 hbase 0.98.12 hive 1.2.1) 3.开始! 4.在hive建立表同时生成对应的 ...
- findall查找 ^$*+?{ }{m,n}[].[.] \w \s \d \b \D \W
#!/usr/bin/env python import re r = "aasa da.5a5dfgfda ada" ret = re.findall('a',r) print( ...
- mongodb 降序
降序排序 db.mycol.find({},{,_id:}).sort({})// 1用于升序排列,而-1用于降序. 示例代码: var user = await Kitten.find({ type ...
- TaikrSpaceShooterStartKit.unitypackage包下载地址
有好多教程里面没有资源包,现在加密分享给大家 unity4.* 链接: https://pan.baidu.com/s/1XMo2zVpV3ZhkNZKOb6H0yw 密码: tqnt unity5 ...
- ROS Learning-001 安装 ROS indigo
如何在 Ubuntu14.04 上安装 ROS indigo 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14.04.4 LTS ROS 版本 ...
- mysql--约束条件
主键的测试 PRIMARY KEY(PRIMARY可以省略) --查看创建表的标的定义,可以查看主键 SHOW CREATE TABLE user1; ,'king');--主键不能重复 ,'kin ...
- 《Head First Servlets & JSP》-2-概述
什么是容器 Servlet没有main()方法,他们受控于另一个Java应用,这个java应用称为容器(Container). Web服务器应用(如Apache)得到一个指向Servlet的请求(如何 ...
- Visual Studio2012快捷键总结
(1)如何设置更改快捷键 1.进入工具----选项 对话框 2.选择 环境---->键盘 3.在 [显示命令包含] 下面的对话框中输入“对齐”关键字,然后就会在这个编辑框下面一个文本窗口中显 ...
- c语言中的const的作用及解析
有时候我们希望定义这样一种变量,它的值不能被改变,在整个作用域中都保持固定.例如,用一个变量来表示班级的最大人数,或者表示缓冲区的大小.为了满足这一要求,可以使用const关键字对变量加以限定: co ...
- Winform定时启动
System.Timers.Timer t; ; int qian; int bai; int shi; int ge; public 测试定时启动() { InitializeComponent() ...