有没有办法使用JSTL获取Map的大小?我尝试了${myMap.size}但不起作用。
得到了解决方案: 使用JSTL函数。
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
然后像这样使用:
<c:if test="${fn:length(myMap) > 1 }">
${myMap.size}
这段代码无法正常工作是因为它被EL解析器翻译为myMap.getSize()。
尝试使用以下代码:
${myMap.size()}
它应该可以工作。
Collection
,但不确定是否适用于Map
。或许值得一试。如果你只想打印计数 - 那么你必须使用 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代码
if (maVar != null && mapVar.size() >= 1) {
// do something
}
是的,你不能像这样打印出大小,但你仍然可以处理项目存在的信息。
我更喜欢这个解决方案,因为那个SUN网址会出错,所以上面的对我有用。
map.size()
在core:if test
评估中无法工作 - 不确定您是如何证明的。 - ha9u63a7