jstl EL式遍歴Map

2381 ワード

ELでは、角カッコ演算子を使用して配列と集合の要素を取得します.実装javaについて.util.マップに格納されている値を検索するには、関連付けられたキーを使用して、Mapインタフェースのセット.かっこでキーを指定し、対応する値を式の値として返します.たとえば、式${map['key']}は、map識別子が参照するMapのキーに関連付けられた値を返します.forEachのitems属性の式の値がjavaである場合.util.Mapの場合、varで命名する変数のタイプがjavaである.util.Map.Entry.このときvar=entryであれば,式${entry.key}でキー名を取得する.各entryの値は、${entry.value}を表すことで得られる.これは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); 
%> 

キー値対ループ
<c:forEach var="item" items="${map2}"> 
${item.key} > ${item.value} <br> 
</c:forEach>

キーループ
<c:forEach var="item" items="${map2}"> 
${item.key}<br> 
</c:forEach>

値の遍歴
<c:forEach var="item" items="${map2}"> 
${item.value}<br> 
</c:forEach> 
<body> 

 
<% 
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); 
%> 

 
キーを押してリスト値を取得し、リストを巡回します.
 
<c:forEach var="item" items="${map['a']}"> 
${item }<br> 
</c:forEach><br> 
<c:forEach var="item" items="${map['b']}"> 
${item }<br> 
</c:forEach>

mapの値はリストであり、リストの各項目を直接遍歴する.
<c:forEach var="item" items="${map}"> 
<c:forEach items="${item.value}" var="it"> 
${it }<br> 
</c:forEach> 
</c:forEach>