¿Cómo usar jstl foreach directamente sobre los valores de un mapa?

Intenté lo siguiente, que sorprendentemente no funciona, parece que .values no funciona en absoluto en jstl:

<c:forEach var="r" items="${applicationScope['theMap'].values}">

El mapa se define así (y luego se guarda en el ServletContext):

Map<Integer, CustomObject> theMap = new LinkedHashMap<Integer, CustomObject>();

¿Cómo hacer que esto funcione? De hecho, realmente me gustaría evitar modificar lo que hay dentro del bucle foreach.

Respuestas a la pregunta(3)

Su respuesta a la pregunta