java - 使用 JSTL 在 Map 中键和值具有 ArrayList

标签 java 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"):

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

管理员(菜单名称) --用户创建(项目1) --分支创建(项目2) 查找创建(菜单名称) --国家(第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>

我正在变得完美,但我对值(value)感到震惊

并且这些值没有迭代相关的键 任何帮助将不胜感激

问候 普拉迪普

最佳答案

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

<%
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>

输出:

管理员26

  • 02_用户创建_14
  • 02_分支创建_14

查找配置26

  • 02_Country_14
  • 02_Language_14

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

关于java - 使用 JSTL 在 Map 中键和值具有 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10955949/

相关文章:

java - 元素名称已使用简单框架

java - 是否有任何网站展示所有可用的 UI 组件和小部件以及源代码?

java - 加载 XML 配置文件时出现 Log4j2 错误

java - 使用 JSTL 动态插入 html

java - 加载或实例化 TagLibraryValidator 失败

java - 无法将自定义参数添加到 VTODO 组件的 STATUS 属性 (ical4j)

java - 检查字符串中的唯一字符(java)

jsp - 包含特殊字符时,Spring MVC 呈现的 JSP 被截断

java - 在 JSTL 中迭代列表

java - 如何通过 URL 路径解析、获取文件名,然后使用 JSTL 和 Java scriptlet 替换文件扩展名