当前位置: 首页 > 图文教程 > 网络编程 > JSP > 在JSTL EL中处理java.util.Map,及嵌套List的情况

JSP
jsp计数器制作
用jsp编写文件上载
基于JSP的动态网站开发技术
JSP由浅入深(3)—— 通过表达式增加动态内容
JSP由浅入深(5)—— Scriptlets和HTML的混合
JSP由浅入深(1)—— 熟悉JSP服务器
JSP由浅入深(12)—— 表单编辑
JSP由浅入深(11)—— 标记库
JSP由浅入深(10)—— Beans and Forms处理
JSP由浅入深(9)—— JSP Sessions
JSP由浅入深(8)—— JSP Tags
JSP由浅入深(6)—— JSP声明
JSP由浅入深(4)—— Scriptlets
JSP由浅入深(2)—— 第一个JSP
JSP由浅入深(7)—— JSP Directives
JSP中的字符替换函数 str_replace() 实现!
把一张图片变形扭曲成各种不同的长宽
用JSP编写通用信息发布程序
Java Servlet及Cookie的使用
Apache+Servlet+Jsp环境设置(上)

JSP 中的 在JSTL EL中处理java.util.Map,及嵌套List的情况


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 133 ::
收藏到网摘: n/a

在EL中,方括号运算符用来检索数组和集合的元素。对于实现 java.util.Map 接口的集合,方括号运算符使用关联的键查找存储在映射中的值。 在方括号中指定键,并将相应的值作为表达式的值返回。例如,表达式 ${map['key']} 返回与 map标识符所引用的 Map 中的 "key" 键相关联的值。
当forEach 的items属性中的表达式的值是java.util.Map时,则var中命名的变量的类型就是 java.util.Map.Entry。这时var=entry的话,用表达式${entry.key}取得键名。 用表达${entry.value}得到每个entry的值。这是因为java.util.Map.Entry对象有getKey和getValue方法,表达式语言遵守JavaBean的命名约定。
<%
Map<String,String> map2 = new HashMap();
map2.put("a","hello world");
map2.put("b","this is map");
request.setAttribute("map2",map2);
%>
<br>
键值对遍历<br>
<c:forEach var="item" items="${map2}">
${item.key} > ${item.value} <br>
</c:forEach>
键遍历<br>
<c:forEach var="item" items="${map2}">
${item.key}<br>
</c:forEach>
值遍历<br>
<c:forEach var="item" items="${map2}">
${item.value}<br>
</c:forEach>
<body>
<br><br>
<%
List<String> list = new ArrayList<String>();
list.add("first");
list.add("second");
List<String> list2 = new ArrayList<String>();
list2.add("aaaaaa");
list2.add("bbbbbb");
Map<String,List<String>> map = new HashMap();
map.put("a",list);
map.put("b",list2);
request.setAttribute("map",map);
%>
通过键获得列表值,并遍历列表<br>
<c:forEach var="item" items="${map['a']}">
${item }<br>
</c:forEach><br>
<c:forEach var="item" items="${map['b']}">
${item }<br>
</c:forEach> <br>
map中值为列表,直接遍历列表中的每一项<br>
<c:forEach var="item" items="${map}">
<c:forEach items="${item.value}" var="it">
${it }<br>
</c:forEach>
</c:forEach>