在JSTL EL中處理java.util.Map,及嵌套List的情況
更新時(shí)間:2009年03月13日 22:30:52 作者:
在EL中,方括號(hào)運(yùn)算符用來(lái)檢索數(shù)組和集合的元素。對(duì)于實(shí)現(xiàn) java.util.Map 接口的集合,方括號(hào)運(yùn)算符使用關(guān)聯(lián)的鍵查找存儲(chǔ)在映射中的值。
在方括號(hào)中指定鍵,并將相應(yīng)的值作為表達(dá)式的值返回。例如,表達(dá)式 ${map['key']} 返回與 map標(biāo)識(shí)符所引用的 Map 中的 "key" 鍵相關(guān)聯(lián)的值。
當(dāng)forEach 的items屬性中的表達(dá)式的值是java.util.Map時(shí),則var中命名的變量的類型就是 java.util.Map.Entry。這時(shí)var=entry的話,用表達(dá)式${entry.key}取得鍵名。 用表達(dá)${entry.value}得到每個(gè)entry的值。這是因?yàn)閖ava.util.Map.Entry對(duì)象有g(shù)etKey和getValue方法,表達(dá)式語(yǔ)言遵守JavaBean的命名約定。
<%
Map<String,String> map2 = new HashMap();
map2.put("a","hello world");
map2.put("b","this is map");
request.setAttribute("map2",map2);
%>
<br>
鍵值對(duì)遍歷<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);
%>
通過(guò)鍵獲得列表值,并遍歷列表<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中值為列表,直接遍歷列表中的每一項(xiàng)<br>
<c:forEach var="item" items="${map}">
<c:forEach items="${item.value}" var="it">
${it }<br>
</c:forEach>
</c:forEach>
當(dāng)forEach 的items屬性中的表達(dá)式的值是java.util.Map時(shí),則var中命名的變量的類型就是 java.util.Map.Entry。這時(shí)var=entry的話,用表達(dá)式${entry.key}取得鍵名。 用表達(dá)${entry.value}得到每個(gè)entry的值。這是因?yàn)閖ava.util.Map.Entry對(duì)象有g(shù)etKey和getValue方法,表達(dá)式語(yǔ)言遵守JavaBean的命名約定。
<%
Map<String,String> map2 = new HashMap();
map2.put("a","hello world");
map2.put("b","this is map");
request.setAttribute("map2",map2);
%>
<br>
鍵值對(duì)遍歷<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);
%>
通過(guò)鍵獲得列表值,并遍歷列表<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中值為列表,直接遍歷列表中的每一項(xiàng)<br>
<c:forEach var="item" items="${map}">
<c:forEach items="${item.value}" var="it">
${it }<br>
</c:forEach>
</c:forEach>
您可能感興趣的文章:
- java類比C++的STL庫(kù)詳解
- Java使用BouncyCastle加密
- java:程序包org.bouncycastle.jce.provider不存在問(wèn)題及解決
- Java的JSTL標(biāo)簽庫(kù)詳解
- Java通用BouncyCastle實(shí)現(xiàn)的DES3加密的方法
- 詳解javaweb中jstl如何循環(huán)List中的Map數(shù)據(jù)
- JavaWeb開(kāi)發(fā)之JSTL標(biāo)簽庫(kù)的使用、 自定義EL函數(shù)、自定義標(biāo)簽(帶屬性的、帶標(biāo)簽體的)
- Java實(shí)現(xiàn)STL中的全排列函數(shù)next_permutation()
相關(guān)文章
WebService傳XML 簡(jiǎn)單實(shí)例
這篇文章主要介紹了WebService傳XML 簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-05-05
jsp判斷請(qǐng)求來(lái)自手機(jī)示例代碼
如何判斷請(qǐng)求來(lái)自手機(jī),實(shí)現(xiàn)的方法有很多,在本文為大家詳細(xì)介紹下jsp中是如何做到的,感興趣的朋友不要錯(cuò)過(guò)2013-10-10
jsp登錄頁(yè)面的簡(jiǎn)單實(shí)例 雛形
下面小編就為大家?guī)?lái)一篇jsp登錄頁(yè)面的簡(jiǎn)單實(shí)現(xiàn) 雛形。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06
Tomcat配置https并訪問(wèn)http自動(dòng)跳轉(zhuǎn)至https
這篇文章主要介紹了Tomcat配置https并訪問(wèn)http自動(dòng)跳轉(zhuǎn)至https的相關(guān)資料,需要的朋友可以參考下2017-06-06
在JSP中訪問(wèn)數(shù)據(jù)庫(kù)大全
在JSP中訪問(wèn)數(shù)據(jù)庫(kù)大全...2006-10-10
JSP 點(diǎn)擊鏈接后下載文件(相當(dāng)于右鍵另存)功能
JSP 點(diǎn)擊鏈接后下載文件(相當(dāng)于右鍵另存)功能實(shí)現(xiàn)代碼。2009-07-07

