I initially set fixed widths and heights for the cells, but we decided to move away from that approach. Now I want the cells to be able to shrink and expand freely, but I also want them to stop resizing once they reach a certain width.
<table align="center" class="data_extract vert_scroll_table" >
<tr>
<c:forEach var="heading" items="${results.headings}">
<th class="data_extract">${heading}</th>
</c:forEach>
</tr>
<c:forEach var="row" items="${results.data}">
<tr>
<c:forEach var="cell" items="${row}" varStatus="rowStatus">
<td class="data_extract">
<c:choose>
<c:when test="${results.types[rowStatus.index].array}">
<c:set var="comma" value="," />
<c:forEach var="elem" items="${cell}" varStatus="cellStatus">
<c:set var="myVar" value="${cellStatus.first ? '' : myVar} ${elem} ${cellStatus.last ? '' : comma}" />
</c:forEach>
<span class="mouseover_text" title="${myVar}">${myVar}</span>
</c:when>
<c:otherwise>
${cell}
</c:otherwise>
</c:choose>
</td>
</c:forEach>
</tr>
</c:forEach>
</table>
css:
table.data_extract
{
border: 2px gray solid;
border-collapse: collapse;
}
td.data_extract,
th.data_extract,
table.data_extract td,
table.data_extract th
{
text-align: center;
font-size: 7.5pt;
white-space: normal;
}