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。。。恐怕得自定义标签了--

原文地址:https://www.cnblogs.com/whm-blog/p/7122461.html