EL accede a un valor de mapa con la tecla entera

Tengo un mapa tecleado por Integer. Usando EL, ¿cómo puedo acceder a un valor por su clave?

Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "One");
map.put(2, "Two");
map.put(3, "Three");

Pensé que esto funcionaría pero no funciona (donde el mapa ya está en los atributos de la solicitud):

<c:out value="${map[1]}"/>

Seguimiento Seguí el problema. Aparentemente${name[1]} realiza una búsqueda en el mapa con el número comoLong. Me di cuenta de esto cuando cambiéHashMap aTreeMap y recibió el error:

java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long

Si cambio mi mapa para que sea:

Map<Long, String> map = new HashMap<Long, String>();
map.put(1L, "One");

luego${name[1]} devuelve "Uno". ¿Qué hay con eso? Por que<c:out> trate un número como largo. Parece contradictorio para mí (ya que int se usa más comúnmente que durante mucho tiempo).

Así que mi nueva pregunta es, ¿hay una notación EL para acceder a un mapa por unInteger valor?

Respuestas a la pregunta(10)

Su respuesta a la pregunta