有没有办法使用JSTL获取Map的大小?我尝试使用$ {myMap.size},但它无法正常工作..
答案 0 :(得分:29)
得到了解决方案: 使用jstl函数。
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
然后像这样使用:
<c:if test="${fn:length(myMap) > 1 }">
答案 1 :(得分:11)
${myMap.size}
无效,因为它被EL解析器转换为myMap.getSize()。
尝试:
${myMap.size()}
它应该有用。
答案 2 :(得分:7)
JSTL长度函数适用于Collection
,但不确定它是否适用于Map
。可能值得一试。
答案 3 :(得分:0)
答案 4 :(得分:0)
如果您只想打印计数 - 那么您必须使用fn
标签。但是,如果您要处理地图中的所有项目或根据可用项目数量执行某些操作,请仅使用核心JSTL标记进行尝试:
<c:if test="${mapVar != null}"/>
<c:forEach var="mapEntry" items="${mapVar}">
<!-- if there is any entry in the map do something -->
</c:forEach>
</c:if>
以上相当于Java Code
if (maVar != null && mapVar.size() >= 1) {
// do something
}
是的,你不能打印出这样的大小,但你仍然可以处理存在的项目的信息。
我更喜欢这个解决方案,因为SUN url出错了,所以上面的内容对我有用。