public String queryAdminPopedom()
{
// ① 查询管理员人员列表
Map<String,Object> adminMap = new HashMap<String, Object>();
adminMap.put("eq,admin",Byte.valueOf("1"));
List<UsertableT> userAdminList = this.menuService.getObjListByParameter(UsertableT.class, adminMap);
ServletActionContext.getRequest().setAttribute("USER_ADMIN_LIST",userAdminList);
// ② 查询所有权限集合
Map<MenuT,Map<MenuT,List<PowerlistT>>> map = this.menuService.queryPopedomMap();
ServletActionContext.getRequest().setAttribute("POPEDOM_MAP",map);
// JSONObject json = JSONObject.fromObject(map);
// System.out.println("json = " + json);
/* TEST 遍历
Iterator<Map.Entry<MenuT,Map<MenuT,List<PowerlistT>>>> it = map.entrySet().iterator();
while(it.hasNext())
{
Map.Entry<MenuT,Map<MenuT,List<PowerlistT>>> m = it.next();
System.out.println("----"+m.getKey().getMenuName());
Map<MenuT,List<PowerlistT>> mv = m.getValue();
Iterator<Map.Entry<MenuT,List<PowerlistT>>> itv = mv.entrySet().iterator();
while(itv.hasNext())
{
Map.Entry<MenuT,List<PowerlistT>> entry = itv.next();
System.out.println("==== ="+entry.getKey().getMenuName());
List<PowerlistT> list = entry.getValue();
for(PowerlistT p:list)
{
System.out.println("==== =="+p.getPowerName());
}
}
}
*/
return SUCCESS;
}
public Map<MenuT, Map<MenuT, List<PowerlistT>>> queryPopedomMap()
{
Map<MenuT,Map<MenuT,List<PowerlistT>>> map = new HashMap<MenuT, Map<MenuT,List<PowerlistT>>>();
//1、查询父菜单为 parentno=0 的一级菜单
Map<String,Object> menuMap1 = new HashMap<String, Object>();
menuMap1.put("eq,parentNo","0");
menuMap1.put("order,menuOrder", "desc");
List<MenuT> menuList1 = this.getObjListByParameter(MenuT.class, menuMap1);
//2、for循环 查询parentno的menuno的二级菜单
for(MenuT m:menuList1)
{
// System.out.println("m.getMenuNo() = "+m.getMenuNo()+" "+m.getMenuName());
Map<String,Object> menuMap2 = new HashMap<String, Object>();
menuMap2.put("eq,parentNo",m.getMenuNo());
List<MenuT> menuList2 = this.getObjListByParameter(MenuT.class, menuMap2);
Map<MenuT,List<PowerlistT>> mapValue = new HashMap<MenuT, List<PowerlistT>>();
//3、根据二级菜单的menuno查询powerlist的powername
for(MenuT menu:menuList2)
{
Map<String,Object> menuMap3 = new HashMap<String, Object>();
menuMap3.put("eq,menuNo",menu.getMenuNo());
List<PowerlistT> powerList = this.getObjListByParameter(PowerlistT.class, menuMap3);
mapValue.put(menu, powerList);
/*for(PowerlistT p:powerList)
{
System.out.println(p.getPowerBak()+" "+p.getPowerName());
}*/
}
map.put(m, mapValue);
}
return map;
}
<div class="table_right">
<!--
<ul>
<div class="titile">
<input type="checkbox" value="" name=""><b>信息管理</b>
</div>
<li>
<p><input type="checkbox" value="" name="">信息栏目</p><p><input type="checkbox" value="" name="">查看</p><p><input type="checkbox" value="" name="">管理</p>
</li>
<li>
<p><input type="checkbox" value="" name="">信息录入</p><p><input type="checkbox" value="" name="">录入</p>
</li>
<li class="end">
<p><input type="checkbox" value="" name="">信息管理</p><p><input type="checkbox" value="" name="">查看</p><p><input type="checkbox" value="" name="">管理</p>
</li>
</ul>
-->
<c:forEach items="${POPEDOM_MAP}" var="map">
<ul>
<div class="titile">
<input type="checkbox" name="${map.key.menuNo }" id="${map.key.menuNo }" value="0" onclick="checkOneAllBox('${map.key.menuNo }')"></input>
<b><c:out value="${map.key.menuName}"></c:out></b>
</div>
<c:forEach items="${map.value}" var="map2">
<li>
<p><input type="checkbox" name="${map2.key.menuNo}" id="${map2.key.menuNo}" value="0" onclick="checkTwoAllBox('${map2.key.menuNo }')"/><c:out value="${map2.key.menuName}"></c:out></p>
<c:forEach items="${map2.value}" var="list">
<p><input type="checkbox" name="${map2.key.menuNo}" value="${list.menuNo }:${list.powId }" /><c:out value="${list.powerName}"></c:out></p>
</c:forEach>
</li>
</c:forEach>
</ul>
</c:forEach>
</div>
- 大小: 41.4 KB
分享到:
相关推荐
`jstl遍历`就是这样一个关键功能。 **1. JSTL核心库(Core Library)** JSTL的核心库主要包含用于控制流程、迭代、URL处理等的标签。例如,`<c:forEach>`标签是用于遍历集合的,它是JSTL中最常用的标签之一。 **2...
在本压缩包中,"jstl 遍历_jstl遍历_源码.zip"可能包含了一些关于如何使用JSTL进行遍历操作的示例代码和源码。以下是对JSTL遍历功能的详细解释。 1. JSTL核心库(Core Library): JSTL的核心库提供了用于处理常见...
本篇将详细介绍如何在JSP中利用JSTL与EL表达式来访问和遍历Map集合。 首先,JSTL是一个标准的标签库,它提供了一系列预定义的标签,用于处理常见的任务,如迭代、条件判断、XML处理等,避免了在JSP页面中直接写Java...
下面我们将详细介绍如何使用JSTL EL表达式遍历Map集合。 ### JSTL EL表达式概述 JSTL(JavaServer Pages Standard Tag Library)是一个JSP标签库,它简化了JSP页面的开发,使得JSP能够更专注于显示逻辑,而不是...
不过需要注意的是,标签是Struts 1.x版本中的标签,而Struts 2.x版本推荐使用JSTL或OGNL表达式进行遍历。 最后,文档中还提到了将List集合存入Map中,然后再通过遍历Map来输出List中的内容。这说明Map集合可以非常...
这里主要关注的是如何利用JSTL中的`<c:forEach>`标签来遍历一个`java.util.Map`对象,并获取其中的键值对。 ### JSTL简介 JSTL是一组标准标签库,用于简化JavaServer Pages (JSP) 页面的开发工作。它提供了一系列...
本篇文档详细介绍了如何在JSTL中遍历Map和List,并通过EL表达式访问和取值。 首先,让我们了解一下JSTL的基本概念。JSTL定义了几种标签库,如核心标签库、格式化标签库、SQL标签库和XML标签库。核心标签库是最常用...
3. **遍历Map**:遍历Map时,可以用`var`指定键变量,用`varValue`指定值变量: ```jsp ${map}" var="entry"> 键:${entry.key},值:${entry.value} ``` 4. **遍历Map, User>**:对于Map的键值对,如果值是...
对于嵌套的集合(例如:List中包含List),使用`c`标签库(JSTL)进行遍历是一种常见的做法。本文将详细介绍如何利用`c:forEach`标签来遍历这种嵌套的数据结构。 #### 1. 基础知识介绍 在Java Web项目中,通常会...
- **循环遍历**:使用`<c:forEach>` 遍历集合,如ArrayList、Map等,展示其中的元素。 - **国际化**:`<fmt:message>` 结合资源文件实现多语言支持。 - **数据库操作**:可能有使用`<sql:query>` 查询数据库并显示...
- `<c:forEach>`:最常见的迭代标签,可以迭代数组、集合、Map等。 在配置JSTL时,需要将JSTL相关的jar文件(如`jstl-1.1.jar`)添加到项目的`WEB-INF/lib`目录下。同时,还需要在JSP页面中声明使用JSTL的核心库,...
本文将详细介绍如何在Javaweb中使用JSTL的标签循环List中的Map数据,并通过具体的代码示例解释其工作原理。 首先,我们考虑一个常见的场景:在后台代码中生成一个List,该List包含多个Map对象。每个Map对象存储了一...
这段代码将遍历`table`这个`Map`,并打印出键和值,以及`Book`对象的`bookID`属性。 JSTL的`<c:forEach>`标签非常适合处理`Map`集合,它使得在JSP页面上显示或操作`Map`数据变得简单。此外,`<c:set>`标签用于设置...
- `<c:forEach>`:遍历集合,可以用于数组、列表、Map等。 - `<c:set>`:设置变量,相当于Java中的`var = value`。 - `<c:out>`:安全地输出变量,防止XSS攻击。 **6. 源码分析** JSTL的源码位于Apache Tomcat的`...
在JSP中,我们可以使用EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)来遍历和渲染Map数据。例如: ```jsp ${result}" var="row"> ${row['column1']} ${row['column2']} ``...
- **迭代**:`<c:forEach>`可以方便地遍历集合,如数组、列表、Map等。 - **国际化**:`<fmt:formatNumber>`、`<fmt:message>`等标签用于数字格式化和多语言支持。 - **URL处理**:`<c:url>`和`<c:param>`可以构建...
1. **c:forEach**:用于循环遍历集合、数组或Map。 2. **c:if**和**c:choose**:用于条件判断,类似于Java中的if...else语句。 3. **c:set**:设置变量。 4. **c:out**:安全地输出值,防止XSS攻击。 5. **c:url**和...
- ****:用于遍历集合,如数组、列表、Map等。 - ****:用于设置变量。 - ****:用于安全地输出数据,防止XSS攻击。 - ****:用于格式化日期和时间。 - **<c:url> 和 **:用于创建和添加URL参数。 **4. 使用JSTL和...
- `forEach`:用于遍历集合,如数组、列表、Map等。 - `if` 和 `choose/when/otherwise`:实现条件判断。 - `import`:用于引入外部资源。 - `out`:显示指定的变量或表达式的值。 - `redirect` 和 `forward`:...
- **迭代标签**: 如`<c:forEach>`,可用于遍历数组、集合、Map等,例如: ```jsp ${list}" var="item"> ${item.name} ``` - **条件标签**: 如`<c:if>`和`<c:choose>`,用于条件判断,例如: ```jsp ${...