Да, взгляните на c: forEach и c: if и язык выражений.Вот пример (не проверенный):
<table>
<c:forEach var="entry" items="${messageMap}" varStatus="num">
<c:if test=${messageMap['/packagesBO/packages["+num.count+"]/packageId']}>
<tr>
<td><c:out value="${messageMap['/packagesBO/packages[\"+num.count+\"]/packageId']"}/></td>
</tr>
</c:if>
</c:forEach>
</table>