【问题标题】:Iterating Map List in JSP for Spring MVC在 JSP 中为 Spring MVC 迭代映射列表
【发布时间】:2015-11-16 11:43:20
【问题描述】:

我在 jsp 页面中发送一个 List > 对象,我想创建一个表,其中列名取自每个映射的键,这些列的值将是对应映射的值。

 <table>
        <c:forEach var="mList" items="${mapList}">
            <tr>
                <td>test : ${mList.key}</td>
           <td>test : ${mList.value}</td>
            </tr>
        </c:forEach>
    </table> 

另外请告诉我如何迭代 List > 对象(保留列名将是每个地图的键)

【问题讨论】:

  • 地图的键是一样的吗?
  • 你能举一个那个表中数据的例子吗?地图列表听起来像是错误的数据结构。
  • 基本上我从服务获取响应并转换为地图列表,现在它提供多行数据,所以现在我想要基本上代表列名的键应该作为列名出现在表中该列中的对应值将是多个
  • @Siddharth 听起来你需要一个 Map>,而不是你目前拥有的。你能举一个具体的数据例子吗?

标签: java spring jsp spring-mvc


【解决方案1】:

您将mList 变量视为映射条目。然而,它是一张完整的地图。 您需要遍历该映射中的条目以访问其键和值:

<table>
    <c:forEach var="map" items="${mapList}">
        <c:forEach var="mapEntry" items="${map}">
            <tr>
                <td>test : ${mapEntry.key}</td>
                <td>test : ${mapEntry.value}</td>
            </tr>
        </c:forEach>
    </c:forEach>
</table>

请注意,这会生成一个包含 2 列的表,其中第一列中的键和第二列中的值,而不是您需要的“从每个映射的键中获取的列名”。

【讨论】:

  • 谢谢。这部分解决了问题,请您进行更改,以使所有键仅作为表中的列名出现一次。
  • @Siddharth 不,除非订购了地图。因为它代表你的数据结构和它的表示只是不适合在一起。如果你想要一个 2 行多列的表,一个简单的 Map 就足够了。对于多行多列的表,请使用 Map>。您的 List> 可以像在您的示例中一样使用。你能举一个你想展示的数据的例子吗?
  • protectedtext.com/31231231 这是由两行组成的响应。密码:1
  • 并将其转换为 List> 其中键是属性名称,值是属性值
  • 即使我使用 Map> 如何将地图的键打印为列名(在 jsp 页面中水平)?
猜你喜欢
  • 2012-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多