如何使用jstl获取HashMap的大小

时间:2011-01-31 13:58:32

标签: java jsp jstl

有没有办法使用JSTL获取Map的大小?我尝试使用$ {myMap.size},但它无法正常工作..

5 个答案:

答案 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)

您可以看到一个示例来查找JSTL HashMap大小here

我们在这里使用HashMap size方法

${numMap.size()}

答案 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出错了,所以上面的内容对我有用。