如何在jsp中的一个表中显示3个映射的数据

时间:2012-07-16 06:43:57

标签: java jsp

我有三张包含数据的地图。 如何在jsp页面的表格中显示它。

4 个答案:

答案 0 :(得分:1)

使用<c:forEach>

迭代每张地图
<table>
<c:forEach items="#{map1}" var="item1">             
   <tr>       
  <td><c:out value="#{item1.key}" /></td>
  <td><c:out value="#{item1.value}" </td>
  </tr>
</c:forEach>

答案 1 :(得分:0)

将三个Map合并为一个。

    Map<String, Integer> map1 = new HashMap<String, Integer>();
    Map<String, Integer> map2 = new HashMap<String, Integer>();
    Map<String, Integer> map3 = new HashMap<String, Integer>();

    Map<String, Integer> combinedMap = new HashMap<String, Integer>();
    combinedMap.putAll(map1);
    combinedMap.putAll(map2);
    combinedMap.putAll(map3);

然后迭代combinedMap

    <c:forEach items="#{combinedMap}" var="item1">

答案 2 :(得分:0)

实现这一目标的方法不止一种(其中之一):

使用JSP标准标记库(JSTL)c:forEach标记如下:

 <c:set value="${sessionScope.sessionObject.map1}" var="map1">
 <c:set value="${sessionScope.sessionObject.map1}" var="map2">
 <c:set value="${sessionScope.sessionObject.map1}" var="map3">

<c:forEach items="${map1}" var="item1">             
   <tr>       
  <td><c:out value="${item1.key}" /></td>
  <td><c:out value="${item1.value}" </td>
  </tr>
</c:forEach>
<c:forEach items="${map2}" var="item1"> .... etc

或者将它们加入一张地图然后迭代。

答案 3 :(得分:0)

为了解决这个问题,我使用了apache commons集合中的MultiMap。 如果我为在jsp上发送的数据创建DTO,也可以解决这个问题。