我附上了几乎所有信息的图片。添加到它。表数据存储在ArrayList中的java bean中(每个记录是一个bean)。
我希望我的应用程序能够识别出我在CYCLE_ID n 并且所有运行都显示在表中(请参阅所需结果),并且每个CYCLE_ID都是相同的。
我愿意在后台java类(未显示)或jsp中进行更改。
<div id="activeQueue">
<h2>Active Modeling Queue for <bean:write name="userBean" property="uid" /> </h2>
<c:forEach items="${activeQueueList}" var="currentQueue">
<p>Queue {<c:out value="${currentQueue.modelQueueID}" />} - <c:out value="${currentQueue.PROJECTION_PROJECT_NME}" /></p>
<table>
<tr>
<th>Type</th>
<th>Start Time </th>
<th>Status</th>
</tr>
<tr>
<td><c:out value="${currentQueue.modelQueueDes}" /></td>
<td><c:out value="${currentQueue.ROW_CREATE_TSP}" /></td>
<td><c:out value="${currentQueue.STATUS_DES}" /></td>
</tr>
</table>
</c:forEach>
答案 0 :(得分:1)
您应该拥有List<Run>
,而不是List<Cycle>
并对其进行迭代,而每个周期都包含List<Run>
。
通过循环对原始平面运行列表进行分组很容易,其中Map将循环ID作为键存储,相应的循环作为值:
最后,地图的keySet()包含所有循环,每个循环包含其所有循环。
然后在JSP中使用两个嵌套的foreach循环。
答案 1 :(得分:1)
首先使用CYCLE_ID作为关键字并使用Map
作为值来准备Queue List
。假设bean类为ActiveQueue
,您可以执行以下操作
Map<Integer, ActiveQueue> data = new HashMap<Integer, ActiveQueue>();
for(ActiveQueue queue : activeQueueList) {
if(!data.containsKey(queue.CYCLE_ID)) {
data.put(queue.CYCLE_ID, new ArrayList<ActiveQueue>);
}
data.get(queue.CYCLE_ID).add(queue);
}
现在你可以在jsp中使用两个嵌套循环。外部循环遍历Map data
,内部循环遍历相应的Map.entry values
。喜欢以下
<div id="activeQueue">
<h2>Active Modeling Queue for <bean:write name="userBean" property="uid" /></h2>
<c:forEach items="${data}" var="entry">
<p>Queue {<c:out value="${entry.key}" />} - <c:out value="${entry.value[0].PROJECTION_PROJECT_NME}" /></p>
<table>
<tr>
<th>Type</th>
<th>Start Time </th>
<th>Status</th>
</tr>
<c:forEach items=${entry.value} var="currentQueue">
<tr>
<td><c:out value="${currentQueue.modelQueueDes}" /></td>
<td><c:out value="${currentQueue.ROW_CREATE_TSP}" /></td>
<td><c:out value="${currentQueue.STATUS_DES}" /></td>
</tr>
</c:forEach>
</table>
</c:forEach>