在Java中获取Map中的键值

时间:2015-07-29 13:24:57

标签: java string jsp dictionary

我不是Java开发人员,但我正在试图弄清楚如何从Map中获取值。我正在使用一个基本的(旧)Struts应用程序,没有花哨的东西或JSTL afaik。我可以通过将Map转换为String来获取所有键/值对:

<% String myValue = pageContext.getSession().getAttribute("myMap").toString(); %>

但是,当我尝试访问特定密钥时,它不起作用:

<% String myValue = pageContext.getSession().getAttribute("myMap['myKey']").toString(); %>

3 个答案:

答案 0 :(得分:3)

<% String myValue = ((Map) pageContext.getSession().getAttribute("myMap")).get("myKey").toString(); %>
resp.
<% String myValue = ((Map) session.getAttribute("myMap")).get("myKey").toString(); %>
// because session is an implicit object in JSP

但是,我强烈建议您不要在JSP中使用此类意大利面条代码。如果你需要输出&#34; myKey&#34;值,您可以使用例如EL <c:out>标记:

<c:out value="${session.myMap.myKey}" />
or
<c:out value="${session['myMap']['myKey']" />

答案 1 :(得分:0)

假设.getAttribute(“myMap”)将返回Map对象本身,您可以使用:
<% String val = pageContext.getSession().getAttribute("myMap").get(myKey).toString %>

答案 2 :(得分:0)

大多数会话将返回Object类型。请尝试下面的一个。

HashMap hmap11=(HashMap)pageContext.getSession().getAttribute("myMap");

它可能有效。