【问题标题】:JSTL get value from nested HashMap [duplicate]JSTL从嵌套的HashMap中获取值[重复]
【发布时间】:2020-08-04 16:02:21
【问题描述】:

我有一个类似{1={descrizione=prova2, post_file=2.PNG., postID=2, userID=37}, 2={descrizione=prova2, post_file=2.PNG., postID=2, userID=37}} 的HashMap,我将它从servlet(生成它的地方)传递到一个JSP 页面。 在此页面中,我只想获取描述、post_file 和 userID 属性。

我尝试了很多东西,首先我做了一个嵌套的 for 循环来打印所有内容

<c:forEach var="entry" items="${post}">
    <c:forEach var = "risultati" items = "${entry}">
        <div id = "post">
            <div>${risultati.value}</div>
        </div>
    </c:forEach>    
    <br>
</c:forEach>

这行得通,然后我尝试这样做

&lt;div&gt;${risultati["postID"}&lt;/div&gt;&lt;div&gt;${risultati.postID}&lt;/div&gt; 但我收到错误 (javax.el.PropertyNotFoundException: Property [values] not found on type [java.util.HashMap$Node]) 或什么也没发生。

我已经尝试了很多搜索,但我没有找到任何东西,请有人帮我解决这个问题吗?

【问题讨论】:

    标签: jsp jstl


    【解决方案1】:

    我找到了这个解决方案,它有效,我不知道它是否是最好的一个

    <c:forEach var="entry" items="${post}">
        <div id = "post">
            <div>${post[entry.key]['postID']}</div>
        </div>
    </c:forEach>
    

    【讨论】:

      【解决方案2】:

      在迭代 HashMap 时,每个var 都是一个Map.Entry。要访问 inner 地图,您必须使用entry.value

      <c:forEach var="entry" items="#{post}">
          <div id = "post">
              <div>${entry.value['postID']}</div>
          </div>
      </c:forEach> 
      

      【讨论】:

        猜你喜欢
        • 2017-03-12
        • 1970-01-01
        • 1970-01-01
        • 2013-09-16
        • 2016-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-10
        相关资源
        最近更新 更多