0

我在jsfiddle.net中有这个示例表,我的表应该是什么样子

第二列可以有多个与原始列重合的行。我很困惑如何使用jstl <c:forEach>

这是我编写的代码,它在同一行中打印所有内容,因为我没有任何内部的 break 语句,foreach但我想要类似于我在 jsfiddle 中的东西

<c:forEach items="${abc.bcd }" var="abc">
<tr>
<td align="center"><c:out value="${abc.interval }" /></td>
<td><c:out value="${abc.operation}" /></td>
<td>
<c:forEach items="${abc.parts.info}" var="info">
<c:out value="${info.number}" />
<c:out value="${info.quantity}" />
<c:out value="${info.name}" />
</c:forEach>                        
</td>
</tr>
</c:forEach>
4

2 回答 2

0

我不知道如何详细说明基于 HTML 的表格的工作方式,但总体而言,单个列中的行并不是它的开发方式。由于行与列的比例需要在一个问题上平衡。

如果您有一列需要行的外观,最好的办法是在该列中放置一个新表并在其中构建所述行的外观

例子:

<table>
   <tr>
     <td>
       <table>
         <tr>
           <td>Info</td>
           <td>Info</td>
           <td>Info</td>
         </tr>
       </table>
    </td>
  </tr>
</table>
于 2012-10-02T05:05:38.417 回答
0

看看你到目前为止所构建的内容,看起来你有一个Mapat abc.parts.info。如果你有一个有序的地图,比如 a LinkedHashMap,你可以遍历地图

<c:forEach items="${abc.bcd}" var="abc">
  <tr>
    <td align="center"><c:out value="${abc.interval}" /></td>
    <td><c:out value="${abc.operation}" /></td>
    <c:forEach items="${abc.parts.info}" var="info">
      <td><c:out value="${info.value}" /></td>
    </c:forEach>                        
  </tr>
</c:forEach>

如果您有一个无序映射,例如 a HashMap,您可以使用 EL 访问映射中的值(假设您的键是字符串):

<c:forEach items="${abc.bcd}" var="abc">
  <tr>
    <td align="center"><c:out value="${abc.interval}" /></td>
    <td><c:out value="${abc.operation}" /></td>
    <td><c:out value="${abc.parts.info['number']}" /></td>
    <td><c:out value="${abc.parts.info['quantity']}" /></td>
    <td><c:out value="${abc.parts.info['name']}" /></td>
  </tr>
</c:forEach>
于 2012-10-02T07:29:28.890 回答