嵌套循环列表映射 JSTL



我无法创建列表,我需要列表

  1. 男人
    • 秋天
      • 凉鞋
    • 春天
  2. 女人
    • 春天
  3. 孩子
    • 秋天
      • 靴子
    • 春天

但是在我有的代码之后

  1. 男人
    • 秋天
      • 凉鞋
      • 靴子
    • 春天
  2. 女人
    • 春天
  3. 孩子
    • 秋天
      • 凉鞋
      • 靴子
    • 春天

    List<MainMenu> listmainmenu;
List<MergeSubMenuPojo> listmergesubmenu;
List<MergeSubSubMenuPojo> listmergesubsubmenu;
Map<Long, List<MergeSubMenuPojo>> submainmenumap = new HashMap<Long, List<MergeSubMenuPojo>>();
Map<Long, List<MergeSubSubMenuPojo>> ssmmmap = new HashMap<Long, List<MergeSubSubMenuPojo>>();
Map<Long, Map<Long,List<MergeSubSubMenuPojo>>> subsubmainmenumap = new HashMap<Long, Map<Long,List<MergeSubSubMenuPojo>>>(); 
Iterator<MainMenu> itmainmenu;
Iterator<MergeSubMenuPojo> itsubmainmenu;
        listmainmenu = mainmenudao.findAll();
            for (itmainmenu = listmainmenu.iterator(); itmainmenu.hasNext();) {
                    mainmenu = (MainMenu)itmainmenu.next();
                    listmergesubmenu = submainmenudao.findAllMerge(mainmenu.getId());
                    submainmenumap.put(mainmenu.getId(), listmergesubmenu);
                    for(itsubmainmenu = listmergesubmenu.iterator(); itsubmainmenu.hasNext();){
                        submainmenu = itsubmainmenu.next();
                        listmergesubsubmenu = subsubmainmenudao.findAllMerge(mainmenu.getId(),submainmenu.getId());
                        ssmmmap.put(submainmenu.getId(), listmergesubsubmenu);
                        subsubmainmenumap.put(mainmenu.getId(), ssmmmap);
                        modelAndView.addObject("listmainmenu",listmainmenu);
                        modelAndView.addObject("submainmenu",submainmenumap);
                        modelAndView.addObject("subsubmainmenu",subsubmainmenumap);
                    }
                }

<c:forEach var="mm" items="${listmainmenu}">
            <li><input type="hidden" value="${mm.id}" class="m">
                <a href="#"><c:out value="${mm.menuname}"/></a>
                <ul>
                    <c:forEach var="smm" items="${submainmenu[mm.id]}">
                        <li><input type="hidden" value="${smm.id}">
                            <a href="#">*<c:out value="${smm.submenuname}"/></a>
                            <ul>
                                <c:forEach var="ssmm" items="${subsubmainmenu[mm.id][smm.id]}">
                                        <li><input type="hidden" value="${ssmm.id}">
                                            <a href="#">**<c:out value="${ssmm.subsubmenuname}"/></a>
                                        </li>
                                </c:forEach>
                            </ul>
                        </li>
                    </c:forEach>
                </ul>
            </li>

您正在其他/或嵌套的 for 循环中迭代循环,因此您不需要类似数组的情况,只需从迭代的当前变量中选择列表即可。 在喊叫代码上没有这样的场景

<c:forEach var="mm" items="${not empty listmainmenu}">
            <li><input type="hidden" value="${mm.id}" class="m">
                <a href="#"><c:out value="${mm.menuname}"/></a>
                <ul>
                    <c:forEach var="smm" items="${not empty mm.submainmenu}">
                        <li><input type="hidden" value="${smm.id}">
                            <a href="#">*<c:out value="${smm.submenuname}"/></a>
                            <ul>
                                <c:forEach var="ssmm" items="${not empty smm.subsubmainmenu}">
                                        <li><input type="hidden" value="${ssmm.id}">
                                            <a href="#">**<c:out value="${ssmm.subsubmenuname}"/></a>
                                        </li>
                                </c:forEach>
                            </ul>
                           </li>
                        </c:forEach>
                    </ul>
             </li>
<c:forEach>

最新更新