jstl EL式遍歴Map
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の値はリストであり、リストの各項目を直接遍歴する.
<%
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>