在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中命名的變量的類(lèi)型就是 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中命名的變量的類(lèi)型就是 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類(lèi)比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)文章
實(shí)例解析JSP中EL表達(dá)式的各種運(yùn)用
這篇文章主要介紹了JSP中EL表達(dá)式的各種運(yùn)用,比如用EL處理數(shù)學(xué)運(yùn)算、內(nèi)置對(duì)象以及數(shù)據(jù)的存取等,代碼示例都相當(dāng)實(shí)用,需要的朋友可以參考下2016-04-04JSP開(kāi)發(fā)中在spring mvc項(xiàng)目中實(shí)現(xiàn)登錄賬號(hào)單瀏覽器登錄
這篇文章主要介紹了JSP開(kāi)發(fā)中在spring mvc項(xiàng)目中實(shí)現(xiàn)登錄賬號(hào)單瀏覽器登錄的相關(guān)資料,需要的朋友可以參考下2017-05-05WebService的用戶控制方式與加密算法分類(lèi)的整理
這篇文章主要介紹了WebService的用戶控制方式與加密算法分類(lèi)的整理的相關(guān)資料,希望通過(guò)本文大家能夠掌握這部分內(nèi)容,需要的朋友可以參考下2017-09-09