如何通过EL表达式获取地图的动态键?
在方括号中指定键,并返回相应的值作为表达式的值。例如,表达式${Map['key']}返回与映射标识符所引用的映射中的“key”键相关联的值。
当forEach的items属性中的表达式的值为java.util.Map时,var中命名的变量的类型为java.util.Map.Entry,当var=entry时,使用表达式${entry.key}获取键名。使用表达式${ entry . value }获取每个条目的值。这是因为java.util.Map.Entry对象有getKey和getValue方法,表达式语言遵循JavaBean的命名约定。
& lt%
地图& ltString,String & gtmap 2 = new HashMap();
map2.put("a "," hello world ");
map2.put("b ","这是地图");
request.setAttribute("map2 ",map 2);
% & gt
& ltbr & gt
键值对遍历
& ltc:forEach var = " item " items = " $ { map 2 } " & gt;
$ { item.key } & gt$ { item.value } & ltbr & gt
& lt/c:forEach & gt;
键遍历
& ltc:forEach var = " item " items = " $ { map 2 } " & gt;
$ { item.key } & ltbr & gt
& lt/c:forEach & gt;
值遍历
& ltc:forEach var = " item " items = " $ { map 2 } " & gt;
$ { item.value } & ltbr & gt
& lt/c:forEach & gt;
& ltbody & gt
& ltbr & gt& ltbr & gt
& lt%
列表& lt字符串& gtlist = new ArrayList & lt字符串& gt();
list . add(" first ");
list . add(" second ");
列表& lt字符串& gtlist2 = new ArrayList & lt字符串& gt();
list 2 . add(" aaaaaa ");
list 2 . add(" bbbbbb ");
地图& lt字符串,列表& lt字符串& gt& gtmap = new HashMap();
map.put("a ",list);
map.put("b ",list 2);
request.setAttribute("map ",地图);
% & gt
通过键获取列表值并遍历列表
& ltc:forEach var = " item " items = " $ { map[' a ']} " & gt;
$ { item } & ltbr & gt
& lt/c:forEach & gt;& ltbr & gt
& ltc:forEach var = " item " items = " $ { map[' b ']} " & gt;
$ { item } & ltbr & gt
& lt/c:forEach & gt;& ltbr & gt
map中的值是一个列表,直接遍历列表中的每一项
& ltc:forEach var = " item " items = " $ { map } " & gt;
& ltc:forEach items = " $ { item . value } " var = " it " & gt;
$ { it } & ltbr & gt
& lt/c:forEach & gt;
& lt/c:forEach & gt;