来自Backend Java,我有一张这样的地图:
映射allMenus
此地图已包含这些对象:
1. allMenus
2. subMenus
他们的详细信息是:
{subMenu=[MenuItem [id=3, itemCaption=sub menu 1-1, itemUrl=http://www.google.com.tw, itemParentId=1, itemOrder=1], MenuItem [id=4, itemCaption=sub menu 1-2, itemUrl=http://tw.yahoo.com, itemParentId=1, itemOrder=2], MenuItem [id=5, itemCaption=sub menu 2-1, itemUrl=http://tw.msn.com, itemParentId=2, itemOrder=1], MenuItem [id=6, itemCaption=sub menu 2-2, itemUrl=https://www.hosting24.com/, itemParentId=2, itemOrder=2], MenuItem [id=7, itemCaption=sub menu 2-3, itemUrl=http://u.camdemy.com/, itemParentId=2, itemOrder=3]], rootMenu=[MenuItem [id=1, itemCaption=top menu 1, itemUrl=null, itemParentId=0, itemOrder=1], MenuItem [id=2, itemCaption=top menu 2, itemUrl=null, itemParentId=0, itemOrder=2]]}
现在,在前端HTML中:
我使用以下代码形成一个SideBar,其中包含顶层菜单和子菜单,总水平= 2,但失败。
请阅读我的代码:
<nav id="sidebar">
<div style="height: 100px;"></div>
<div th:each="rootMenu:${allMenus.rootMenu}">
<button type="button" id="btn-sidebar" class="btn btn-warning"
data-toggle="collapse" data-target="#menu1sub1"
th:text="${rootMenu.itemCaption}"></button>
<div class="collapse" id="menu1sub1">
<ul th:each="subMenu:${allMenus.subMenu}">
<li class="nav-item" th:if="${subMenu.itemParentId == rootMenu.id}">
<a th:href="${subMenu.itemUrl}" th:text="${subMenu.itemCaption}"
></a>
</li>
</ul>
</div>
</div>
</nav>
上述代码的结果是:
1.正确显示所有顶级菜单
2.但是,子菜单都放在第一个顶级菜单中,这是错误的
enter image description here