<%@ page contentType="text/html;charset=UTF-8" language="java" %><%@ include file="/common/taglibs.jsp"%><%@taglib prefix="shiro" uri="http://shiro.apache.org/tags"%><!DOCTYPE html><html><head>    <meta charset="utf-8">    <title>管理系统</title>    <meta name="renderer" content="webkit">    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">    <link rel="stylesheet" href="${ctxLayui}/layuiadmin/layui/css/layui.css" media="all">    <link rel="stylesheet" href="${ctxLayui}/layuiadmin/style/admin.css" media="all"></head><body class="layui-layout-body"><div id="LAY_app">    <div class="layui-layout layui-layout-admin">        <div class="layui-header">            <!-- 头部区域 -->            <ul class="layui-nav layui-layout-left">                <li class="layui-nav-item layadmin-flexible" lay-unselect>                    <a href="javascript:;" layadmin-event="flexible" title="侧边伸缩">                        <i class="layui-icon layui-icon-shrink-right" id="LAY_app_flexible"></i>                    </a>                </li>                <li class="layui-nav-item" lay-unselect>                    <a href="javascript:;" layadmin-event="refresh" title="刷新">                        <i class="layui-icon layui-icon-refresh-3"></i>                    </a>                </li>                <%--<li class="layui-nav-item layui-hide-xs" lay-unselect>                    <input type="text" placeholder="搜索..." autocomplete="off" class="layui-input layui-input-search" layadmin-event="serach" lay-action="template/search.html?keywords=">                </li>--%>            </ul>            <ul class="layui-nav layui-layout-right" lay-filter="layadmin-layout-right">                <%--<li class="layui-nav-item" lay-unselect>                    <a lay-href="app/message/index.html" layadmin-event="message" lay-text="消息中心">                        <i class="layui-icon layui-icon-notice"></i>                        <!-- 如果有新消息,则显示小圆点 -->                        <span class="layui-badge-dot"></span>                    </a>                </li>--%>                <%--<li class="layui-nav-item layui-hide-xs" lay-unselect>                    <a href="javascript:;" layadmin-event="theme">                        <i class="layui-icon layui-icon-theme"></i>                    </a>                </li>--%>                <%--<li class="layui-nav-item layui-hide-xs" lay-unselect>                    <a href="javascript:;" layadmin-event="note">                        <i class="layui-icon layui-icon-note"></i>                    </a>                </li>--%>                <li class="layui-nav-item layui-hide-xs" lay-unselect>                    <a href="javascript:;" layadmin-event="fullscreen">                        <i class="layui-icon layui-icon-screen-full"></i>                    </a>                </li>                <li class="layui-nav-item" lay-unselect>                    <a href="javascript:;">                        <cite>                            <shiro:principal property="name"/>                        </cite>                    </a>                    <dl class="layui-nav-child">                        <dd><a lay-href="system/userInfoForm.jsp#/self=1">基本资料</a></dd>                        <%--<dd><a lay-href="set/user/password.html">修改密码</a></dd>--%>                        <hr>                        <dd layadmin-event="logout" style="text-align: center;"><a>退出</a></dd>                    </dl>                </li>                    <li class="layui-nav-item " lay-unselect>                        <a href="javascript:;">                            <cite data-type="openCall" class="call_seat">坐席</cite>                        </a>                    </li>                <li class="layui-nav-item layui-hide-xs" lay-unselect>                    <a href="javascript:;" >                        <%--<i class="layui-icon layui-icon-more-vertical"></i>--%>                    </a>                </li>                <%--<li class="layui-nav-item layui-show-xs-inline-block layui-hide-sm" lay-unselect>                    <a href="javascript:;" layadmin-event="more"><i class="layui-icon layui-icon-more-vertical"></i></a>                </li>--%>            </ul>        </div>        <!-- 侧边菜单 -->        <div class="layui-side layui-side-menu">            <div class="layui-side-scroll">                <div class="layui-logo" lay-href="home/console.html">                    <span>后台管理</span>                </div>                <!-- 建议改变真实接口地址时保留lay-url中的?v={{ layui.admin.v }} -->                <script type="text/html" template                        lay-done="layui.element.render('nav', 'layadmin-system-side-menu');" id="TPL_layout">                    <div lay-templateid="TPL_layout">                        <ul class="layui-nav layui-nav-tree" lay-shrink="all" id="LAY-system-side-menu" lay-filter="layadmin-system-side-menu">                            {{#                            layui.each(d.data, function(index,item){                            }}                            <li class="layui-nav-item {{ item.spread ? item.children && item.children.length > 0 ? 'layui-nav-itemed' : 'layui-this': '' }}" myDir = "1">                                {{# if(item.url){ }}                                <a lay-href="{{ item.url }}" lay-tips="{{ item.name }}" lay-direction="2">                                    {{# }else{ }}                                    <a href="javascript:;" lay-tips="{{ item.name }}" lay-direction="2">                                        {{# } }}                                        {{# if(item.icon){ }}                                        <i class="layui-icon {{ item.icon }}"></i>                                        {{# } }}                                        <cite>{{ item.name }}</cite>                                    </a>                                    {{#                                    var itemListFun = function(children, myDir){                                    myDir = myDir || 2;                                    if( children && children.length > 0){ }}                                    <dl class="layui-nav-child">                                        {{# layui.each(children, function(index2, item2){ }}                                        <dd data-name="{{ item2.code || '' }}" class="{{ item2.spread ? (item2.children && item2.children.length > 0 ? 'layui-nav-itemed' : 'layui-this' ) : ''}}" myDir="{{ myDir }}">                                            {{# if(item2.icon){ }}                                            <i class="layui-icon {{ item.icon }}"></i>                                            {{# } }}                                            {{# if(item2.url){ }}                                            <a lay-href="{{ item2.url }}">{{ item2.name }}</a>                                            {{# }else{ }}                                            <a href="javascript:;">{{ item2.name }}</a>                                            {{# } }}                                            {{# itemListFun(item2.children,myDir+1);}}                                        </dd>                                        {{# }) }}                                    </dl>                                    {{#  } }}                                    {{#  };                                    itemListFun(item.children); }}                            </li>                            {{# }) }}                        </ul>                    </div>                </script>                </ul>            </div>        </div>        <!-- 页面标签 -->        <div class="layadmin-pagetabs" id="LAY_app_tabs">            <div class="layui-icon layadmin-tabs-control layui-icon-prev" layadmin-event="leftPage"></div>            <div class="layui-icon layadmin-tabs-control layui-icon-next" layadmin-event="rightPage"></div>            <div class="layui-icon layadmin-tabs-control layui-icon-down">                <ul class="layui-nav layadmin-tabs-select" lay-filter="layadmin-pagetabs-nav">                    <li class="layui-nav-item" lay-unselect>                        <a href="javascript:;"></a>                        <dl class="layui-nav-child layui-anim-fadein">                            <dd layadmin-event="closeThisTabs"><a href="javascript:;">关闭当前标签页</a></dd>                            <dd layadmin-event="closeOtherTabs"><a href="javascript:;">关闭其它标签页</a></dd>                            <dd layadmin-event="closeAllTabs"><a href="javascript:;">关闭全部标签页</a></dd>                        </dl>                    </li>                </ul>            </div>            <div class="layui-tab" lay-unauto lay-allowClose="true" lay-filter="layadmin-layout-tabs">                <ul class="layui-tab-title" id="LAY_app_tabsheader">                    <li lay-id="home/console.jsp" lay-attr="home/console.jsp" class="layui-this"><i class="layui-icon layui-icon-home"></i></li>                </ul>            </div>        </div>        <!-- 主体内容 -->        <div class="layui-body" id="LAY_app_body">            <div class="layadmin-tabsbody-item layui-show">                <iframe src="home/console.jsp" frameborder="0" class="layadmin-iframe"></iframe>            </div>        </div>        <!-- 辅助元素,一般用于移动设备下遮罩 -->        <div class="layadmin-body-shade" layadmin-event="shade"></div>    </div></div><script src="${ctxLayui}/layuiadmin/layui/layui.js"></script><script>    layui.config({        base: '${ctxLayui}/layuiadmin/' //静态资源所在路径        ,version:new Date().getTime()    }).extend({        index: 'lib/index' //主入口模块    }).use(['index','laytpl','common','form','dict','laydate'],function () {        var $ = layui.$;        var admin = layui.admin;        var laytpl = layui.laytpl;        var element = layui.element;        var form = layui.form;        var dict = layui.dict;        var laydate = layui.laydate;        var menuTpl = top.layui.view('TPL_layout');        menuTpl.container.attr('lay-url', ctx+'/business/businessUser/getMenuList?v='+layui.admin.v);//可更改url        menuTpl.refresh();    });</script></body></html>

接口:business/businessUser/getMenuList 的返回结构为:BusinessMenuPo

/** * 名称 */private String name;/** * 代码 */private String code;/** * 父ID */private Long parentId;/** * 菜单类型;1-分类;2-模块;3-功能;4-按键 */private Integer type;/** * 链接URL */private String url;/** * 排序 */private Integer sortOrder;private List<BusinessMenuPo> children;