繁体   English   中英

键和值通过使用JSTL在Map中具有ArrayList

[英]Key and Value has ArrayList in Map by Using JSTL

我有一个

Map<ArrayList<String>, ArrayList<String> myMap = new HashMap<ArrayList<String>,ArrayList<String>>();

List<String> list1 = new ArrayList<String>();
list1.add("Administrator");
list1.add("Lookup Configuration");

List<String> list2 = new ArrayList<String>();
list2.add("User Creation");
list2.add("Branch Creation");
list2.add("Country");
list2.add("Language"):

以上是虚拟数据,我正在创建这样的菜单管理

管理员(MenuName) - 用户创建(第1项) - 分支创建(第2项)查找创建(MenuName) - 国家(第1项) - 货币(第2项)

我正在写这样的jstl

Map,ArrayList> myMap = new LinkedHashMap,ArrayList>();

而我这样做

<c:forEach items="${mainMenu}" var="myMenu">
  <c:forEach items="${myMenu.key}" var="menuName" varStatus="loop">
    <li id="lookup" class="mail"><a href="#lookup">${menuName}<span>26</span></a>   
    <ul class="sub-menu">
      <c:forEach items="${myMenu.value}" var="items" varStatus="loop">
         <li><a href="#"><em>02</em>${items.itemName}<span>14</span></a></li>
      </c:forEach>                                            
    </ul>                   
    </li>
  </c:forEach>                                                                         
</c:forEach>

我得到了关键的完美,但我很震惊

并且值不会迭代已实现的密钥,任何帮助都会被折旧

关心普拉迪普

您使用的是正确的数据结构吗?

你的意思是:

    Administrator
      --User Creation
      --Branch Creation
    Lookup Configuration
      --Country
      --Currency

这不是列表地图吗? :Map <String,List <String >>

然后你可以有一个嵌套的循环,你迭代每个键,然后遍历那个键的值。

我不确定,但也许你想要这样的东西:

<%
Map<String, List<String>> myMap = new LinkedHashMap<String,List<String>>();
request.setAttribute("mainMenu", myMap);
List<String> adminItemsList = new ArrayList<String>();
adminItemsList.add("User Creation");
adminItemsList.add("Branch Creation");

List<String> lookupItemsList = new ArrayList<String>();
lookupItemsList.add("Country");
lookupItemsList.add("Language");

myMap.put("Administrator", adminItemsList);
myMap.put("Lookup Configuration", lookupItemsList);
%>

<c:forEach items="${mainMenu}" var="myMenu">
    <li id="lookup" class="mail"><a href="#lookup">${myMenu.key}<span>26</span></a>   
    <ul class="sub-menu">
    <c:forEach items="${myMenu.value}" var="item" varStatus="loop">
         <li><a href="#"><em>02</em>_${item}_<span>14</span></a></li>
    </c:forEach>                                            
    </ul>                   
    </li>
</c:forEach>

出:

Administrator26

  • 02_User Creation_14
  • 02_Branch Creation_14

查找配置26

  • 02_Country_14
  • 02_Language_14

我使用LinkedHashMap来记住我在Map中放置的键的顺序。

它真的很有帮助你的两个帖子,非常感谢你,我得到了你的两个答案的解决方案

这里是

我的地图是Map<String,List<String> myMenu = new HashMap<String, List<String>>();

<c:forEach items="${myMenu}" var="menuName" varStatus="loop">
   <li id="lookup" class="mail"><a href="#lookup">${menuName.key}</a>   
     <ul class="sub-menu">                                      
       <c:forEach items="${menuName.value}" var="item" varStatus="loop">
          <li><a href="${item.pageURL}">${item.itemName}</a></li>
       </c:forEach>
     </ul>                  
   </li>
</c:forEach>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM