在JSP上显示包含可变长度<td>

Displaying data on JSP containing varying length <td>

本文关键字:lt td gt JSP 显示 包含可      更新时间:2023-09-26

我需要帮助以特定格式在JSP上显示数据。JSP的数据来自列表形式的java代码,inturn从bean中获取数据,基本上我在JSP页面上有一个bean列表。我的数据需要采用特定的格式,类似于下表:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
<table border="1">
   
 <!-- Below row is supposed to be the linking element, lets call it Dep#  -->
<tr>
	<th>22603</th>
	<th>23926</th>
	<th>25018</th>
	<th>26441</th>
	<th>29757</th>
	<th>31798</th>
	<th>32436</th>
	<th>32699</th>
	<th>37948</th>
</tr>
<tr> <!-- Below set of row's are supposed to be the linked element, lets call it Emp# -->
	<td>41162</td>
	<td>37362</td>
	<td>38311</td>
	<td>37773</td>
	<td>38666</td>
	<td>40056</td>
	<td>37519</td>
	<td>38389</td>
	<td>37596</td>
</tr>
<tr>
	<td></td>
	<td>38824</td>
	<td>38896</td>
	<td></td>
	<td>39498</td>
	<td></td>
	<td>37548</td>
	<td></td>
	<td>37442</td>
</tr>
<tr>
	<td></td>
	<td></td>
	<td>41009</td>
	<td></td>
	<td>37827</td>
	<td></td>
	<td></td>
	<td></td>
	<td>37259</td>
</tr>
<tr>
	<td></td>
	<td></td>
	<td>41180</td>
	<td></td>
	<td>37473</td>
	<td></td>
	<td></td>
	<td></td>
	<td>37537</td>
</tr>
<tr>
	<td></td>
	<td></td>
	<td>41967</td>
	<td></td>
	<td>37856</td>
	<td></td>
	<td></td>
	<td></td>
	<td></td>
</tr>
<tr>
	<td></td>
	<td></td>
	<td>38805</td>
	<td></td>
	<td>39307</td>
	<td></td>
	<td></td>
	<td></td>
	<td></td>
</tr>
<tr>
	<td></td>
	<td></td>
	<td>40690</td>
	<td></td>
	<td>40176</td>
	<td></td>
	<td></td>
	<td></td>
	<td></td>
</tr>
<tr>
	<td></td>
	<td></td>
	<td>42144</td>
	<td></td>
	<td>38667</td>
	<td></td>
	<td></td>
	<td></td>
	<td></td>
</tr>
<tr>
	<td></td>
	<td></td>
	<td></td>
	<td></td>
	<td>38390</td>
	<td></td>
	<td></td>
	<td></td>
	<td></td>
</tr>
<tr>
	<td></td>
	<td></td>
	<td></td>
	<td></td>
	<td>37845</td>
	<td></td>
	<td></td>
	<td></td>
	<td></td>
</tr>
</table>
</body>
</html>

从后端代码传递的列表中有以下2个bean:1.deptNum(一个部门可以有多个Emp(2.empNum(1个Emp只能是1个部门的一部分(

如何实现这种特殊格式的数据显示?

<td></td>应该是<td>&nbsp;</td>,因为当<td></td>内部什么都没有时,浏览器通常不会显示它。&nbsp;是一个不间断的空间。

根据您的问题,基本上您有一组部门和许多属于这些部门的员工列表。

我建议您使用"java.util.Set"answers"java.util.Map"来解决此问题。

"每个员工只有一个部门"意味着我们有一个部门列表,它们在这个列表中是唯一的。因此,使用"Set"而不是从后端传递的"List"。

其次,您可以将该集合用作每个员工Map的KeySet。然后,每个地图都可以显示每个部门的员工(如果该地图存在的话(。

最后,您可以准备一个要在JSP部分遍历的映射列表。

Set<String> deptSet = ....
foreach (String deptNum : deptSet) {
  print("<th>" + deptNum + "</th>");
}
...
List<Map<String,String>> empMapList = ....
foreach (empMap : empMapList) {
  Set empSet = empMap.getValues();
  foreach (String empNum : empSet) {
    if (empNum == null) 
      print("<td>&nbsp;/td>");
    else 
      print("<td>" + empNum + "</td>");
  }
}