我不是Java开发人员,但我正在试图弄清楚如何从Map中获取值。我正在使用一个基本的(旧)Struts应用程序,没有花哨的东西或JSTL afaik。我可以通过将Map转换为String来获取所有键/值对:
<% String myValue = pageContext.getSession().getAttribute("myMap").toString(); %>
但是,当我尝试访问特定密钥时,它不起作用:
<% String myValue = pageContext.getSession().getAttribute("myMap['myKey']").toString(); %>
答案 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");
它可能有效。