EL表达式之显示Map集合中的数据

本文介绍了如何在EL表达式中显示和遍历Map集合数据,包括遵守Java标识符规范以便使用.的方式访问value,以及注意Map集合key的泛型不能是Java基本数据类型包装类的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、显示Map集合中的数据

示例代码如下:

<%
	Map<String,Integer> grades = new HashMap<String,Integer>();
	grades.put("Tom", 100);
	grades.put("Lucy", 70);
	request.setAttribute("grades", grades);
%>
<!-- 输出Map集合中Tom的分数 -->
	${grades.Tom }//不推荐使用
	${grades['Tom'] }//推荐使用
	${grades["Tom"] }//推荐使用

运行结果如下图:
在这里插入图片描述

二、遍历Map集合

示例代码如下:

<%
	Map<String,Integer> grades = new HashMap<String,Integer>();
	grades.put("Tom", 100);
	grades.put("Lucy", 70);
	request.setAttribute("grades", grades);
%>
<!-- 遍历Map集合 -->
<c:forEach var="grade" items="${grades }">
	${grade.key }-->${grade.value }
</c:forEach>

运行结果如下图:
在这里插入图片描述

三、注意事项

1、Map集合中的key最好符合Java标识符规范。如果不符合,则在EL表达式中不能使用.的方式获取到Map集合中key对应的value,只能通过[]的方式获取到key对应的value。示例代码如下:

<%
	Map<String,Integer> grades = new HashMap<String,Integer>();
	grades.put("1Tom", 100);
	grades.put("Lucy", 70);
	request.setAttribute("grades", grades);
%>
<!-- 输出Map集合中Tom的分数 -->
	${grades.1Tom }//由于key不符合Java标识符规范,所以不能使用这种方式,运行会报错。
	${grades['1Tom'] }
	${grades["1Tom"] }

运行结果如下图:
在这里插入图片描述

2、Map集合中key的泛型不能是Java基本数据类型的包装类,否则EL表达式无论使用哪种方式都无法获取到相应的value。示例代码如下:

<%
	Map<Integer,String> grades = new HashMap<Integer,String>();
	grades.put(100, "Tom");
	grades.put(70, "Lucy");
	request.setAttribute("grades", grades);
%>
<!-- 输出Map集合中Tom的分数 -->
	${grades.100 }//由于key为数值型,所以不能使用这种方式,运行会报错。
	${grades['100'] }//由于key为Integer类型,所以无法获取数据
	${grades["100"] }//由于key为Integer类型,所以无法获取数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值