繁体   English   中英

如何在jsp / jstl中显示HashMap Key

[英]How to display HashMap Key in jsp/jstl

我是JSP / JSTL的新手。

我已根据请求设置了HashMap,如下所示

HashMap <String, Vector> hmUsers = new HashMap<String, Vector>();

HashMap hmUsers = eQSessionListener.getLoggedinUsers();

request.setAttribute("currentLoggedInUsersMap", hmUsers);

我在My jsp中警告HashMap如下

<script> alert("<c:out value = '${currentLoggedInUsersMap}' />"); </script>

到目前为止,所有这些都符合我的期望。

但是,如果我尝试获取此HashMap的密钥,则不会发出任何警报。

<script> alert("<c:out value = '${currentLoggedInUsersMap.key}' />"); </script>

有什么我错的吗?

提前致谢。

这是您在JSP中迭代Map所需的内容。 有关更多信息,请查看JSTL Core c:forEach Tag

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<c:forEach items="${currentLoggedInUsersMap}" var="entry">
    Key = ${entry.key}, value = ${entry.value}<br>
</c:forEach>

它就像在JAVA中使用的Map.Entry,如下所示,以获取键值。

for (Map.Entry<String, String> entry : currentLoggedInUsersMap.entrySet()) {
    String key = entry.getKey();
    String value = entry.getValue();
}

阅读有关如何在JSP中循环HashMap的详细描述

您可以将hashmap迭代为:

    <c:forEach items="${currentLoggedInUsersMap}" var="usersMap" varStatus="usersMapStatus">  
        //Key
        Key: ${usersMap.key}
        //Iterate over values ,assuming vector of strings
        <c:forEach items="${usersMap.value}" var="currentLoggedInUserValue" varStatus="valueStatus">
            Value: ${currentLoggedInUserValue}
        </c:forEach>        
    </c:forEach>

这里$ {usersMap.key}是地图中存在的键列表,$ {usersMap.value}是你必须在内循环中再次迭代的向量,如上所示。

确保导入:

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM