`
chengyu2099
  • 浏览: 468682 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Map套map 前台jstl遍历

 
阅读更多
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 遍历_jstl遍历_

    `jstl遍历`就是这样一个关键功能。 **1. JSTL核心库(Core Library)** JSTL的核心库主要包含用于控制流程、迭代、URL处理等的标签。例如,`&lt;c:forEach&gt;`标签是用于遍历集合的,它是JSTL中最常用的标签之一。 **2...

    jstl 遍历_jstl遍历_源码.zip

    在本压缩包中,"jstl 遍历_jstl遍历_源码.zip"可能包含了一些关于如何使用JSTL进行遍历操作的示例代码和源码。以下是对JSTL遍历功能的详细解释。 1. JSTL核心库(Core Library): JSTL的核心库提供了用于处理常见...

    在jsp中使用JSTL跟El表达式访问和遍历Map集合

    本篇将详细介绍如何在JSP中利用JSTL与EL表达式来访问和遍历Map集合。 首先,JSTL是一个标准的标签库,它提供了一系列预定义的标签,用于处理常见的任务,如迭代、条件判断、XML处理等,避免了在JSP页面中直接写Java...

    jstl EL表达式遍历Map的方法

    下面我们将详细介绍如何使用JSTL EL表达式遍历Map集合。 ### JSTL EL表达式概述 JSTL(JavaServer Pages Standard Tag Library)是一个JSP标签库,它简化了JSP页面的开发,使得JSP能够更专注于显示逻辑,而不是...

    遍历Map集合.pdf

    不过需要注意的是,标签是Struts 1.x版本中的标签,而Struts 2.x版本推荐使用JSTL或OGNL表达式进行遍历。 最后,文档中还提到了将List集合存入Map中,然后再通过遍历Map来输出List中的内容。这说明Map集合可以非常...

    jstl读取map.txt

    这里主要关注的是如何利用JSTL中的`&lt;c:forEach&gt;`标签来遍历一个`java.util.Map`对象,并获取其中的键值对。 ### JSTL简介 JSTL是一组标准标签库,用于简化JavaServer Pages (JSP) 页面的开发工作。它提供了一系列...

    jstl之map,list访问遍历以及el表达式map取值的实现

    本篇文档详细介绍了如何在JSTL中遍历Map和List,并通过EL表达式访问和取值。 首先,让我们了解一下JSTL的基本概念。JSTL定义了几种标签库,如核心标签库、格式化标签库、SQL标签库和XML标签库。核心标签库是最常用...

    jstl 使用文档方便你快速入门 ,能够快速上手使用JSTL技术.pdf

    3. **遍历Map**:遍历Map时,可以用`var`指定键变量,用`varValue`指定值变量: ```jsp ${map}" var="entry"&gt; 键:${entry.key},值:${entry.value} ``` 4. **遍历Map, User&gt;**:对于Map的键值对,如果值是...

    c标签遍历集合嵌套的List集合

    对于嵌套的集合(例如:List中包含List),使用`c`标签库(JSTL)进行遍历是一种常见的做法。本文将详细介绍如何利用`c:forEach`标签来遍历这种嵌套的数据结构。 #### 1. 基础知识介绍 在Java Web项目中,通常会...

    jstl,jstl实例源码

    - **循环遍历**:使用`&lt;c:forEach&gt;` 遍历集合,如ArrayList、Map等,展示其中的元素。 - **国际化**:`&lt;fmt:message&gt;` 结合资源文件实现多语言支持。 - **数据库操作**:可能有使用`&lt;sql:query&gt;` 查询数据库并显示...

    JSTL详解

    - `&lt;c:forEach&gt;`:最常见的迭代标签,可以迭代数组、集合、Map等。 在配置JSTL时,需要将JSTL相关的jar文件(如`jstl-1.1.jar`)添加到项目的`WEB-INF/lib`目录下。同时,还需要在JSP页面中声明使用JSTL的核心库,...

    详解javaweb中jstl如何循环List中的Map数据

    本文将详细介绍如何在Javaweb中使用JSTL的标签循环List中的Map数据,并通过具体的代码示例解释其工作原理。 首先,我们考虑一个常见的场景:在后台代码中生成一个List,该List包含多个Map对象。每个Map对象存储了一...

    jstl对集合操作大全-个人整理

    这段代码将遍历`table`这个`Map`,并打印出键和值,以及`Book`对象的`bookID`属性。 JSTL的`&lt;c:forEach&gt;`标签非常适合处理`Map`集合,它使得在JSP页面上显示或操作`Map`数据变得简单。此外,`&lt;c:set&gt;`标签用于设置...

    jstl插件与底层源码

    - `&lt;c:forEach&gt;`:遍历集合,可以用于数组、列表、Map等。 - `&lt;c:set&gt;`:设置变量,相当于Java中的`var = value`。 - `&lt;c:out&gt;`:安全地输出变量,防止XSS攻击。 **6. 源码分析** JSTL的源码位于Apache Tomcat的`...

    查询返回Map

    在JSP中,我们可以使用EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)来遍历和渲染Map数据。例如: ```jsp ${result}" var="row"&gt; ${row['column1']} ${row['column2']} ``...

    jstl相关jar包

    - **迭代**:`&lt;c:forEach&gt;`可以方便地遍历集合,如数组、列表、Map等。 - **国际化**:`&lt;fmt:formatNumber&gt;`、`&lt;fmt:message&gt;`等标签用于数字格式化和多语言支持。 - **URL处理**:`&lt;c:url&gt;`和`&lt;c:param&gt;`可以构建...

    JSTLjar包.zip

    1. **c:forEach**:用于循环遍历集合、数组或Map。 2. **c:if**和**c:choose**:用于条件判断,类似于Java中的if...else语句。 3. **c:set**:设置变量。 4. **c:out**:安全地输出值,防止XSS攻击。 5. **c:url**和...

    jstl两个核心包和jstl标签库EL表达式详解

    - ****:用于遍历集合,如数组、列表、Map等。 - ****:用于设置变量。 - ****:用于安全地输出数据,防止XSS攻击。 - ****:用于格式化日期和时间。 - **&lt;c:url&gt; 和 **:用于创建和添加URL参数。 **4. 使用JSTL和...

    jstl_standard.rar

    - `forEach`:用于遍历集合,如数组、列表、Map等。 - `if` 和 `choose/when/otherwise`:实现条件判断。 - `import`:用于引入外部资源。 - `out`:显示指定的变量或表达式的值。 - `redirect` 和 `forward`:...

    JSTL API帮助文档

    - **迭代标签**: 如`&lt;c:forEach&gt;`,可用于遍历数组、集合、Map等,例如: ```jsp ${list}" var="item"&gt; ${item.name} ``` - **条件标签**: 如`&lt;c:if&gt;`和`&lt;c:choose&gt;`,用于条件判断,例如: ```jsp ${...

Global site tag (gtag.js) - Google Analytics