【问题标题】:Get value of key within Map in Java在Java中获取Map中的键值
【发布时间】:2015-10-20 12:16:39
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: java string jsp dictionary


    【解决方案1】:

    大多数情况下会话将返回 Object 类型。请尝试以下方法。

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

    它可能会起作用。

    【讨论】:

      【解决方案2】:
      <% 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 中使用这种意大利面条式代码。如果您需要输出“myKey”值,您可以使用例如&lt;c:out&gt; 带有 EL 的标签:

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

      【讨论】:

      • 太棒了!我实际上是在使用.replaceAll() 和最后的myValue 字符串进行字符串替换,所以我认为这不是利用简单的&lt;c:out ... /&gt;
      • 参见tutorialspoint.com/jsp/jstl_function_replace.htm(实际上,Tutorials Point 的整个 JSP 教程至少值得一读)。
      • 关于 JSTL 教程,很遗憾我不能使用函数库。添加&lt;%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %&gt; 会导致我的代码库出现“找不到标签库”错误。
      • 您可能需要安装 JSTL(jstl.java.net,如果您使用 Tomcat,则为 tomcat.apache.org/taglibs/standard)。您必须将 JAR 文件放入应用程序的 WEB-INF/lib 文件夹中。
      【解决方案3】:

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

      【讨论】:

      • 如上面的 cmets 中所述,您可能必须像这样强制转换为 Map: ) pageContext.getSession() .getAttribute("myMap")).get(myKey).toString(); %>
      猜你喜欢
      • 2016-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-13
      • 1970-01-01
      • 1970-01-01
      • 2020-11-27
      相关资源
      最近更新 更多