У меня есть карта с ключом Integer. Используя EL, как я могу получить доступ к значению по его ключу?
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "One");
map.put(2, "Two");
map.put(3, "Three");
Я думал, что это сработает, но это не так (где карта уже находится в атрибутах запроса):
<c:out value="${map[1]}"/>
Последующие действия: Я обнаружил проблему. По-видимому, ${name[1]} выполняет поиск карты с номером как Long. Я понял это, когда я изменил HashMap на TreeMap и получил ошибку:
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long
Если я изменю свою карту следующим образом:
Map<Long, String> map = new HashMap<Long, String>();
map.put(1L, "One");
то ${name[1]} возвращает "Один". Что с этим? Почему <c:out> обрабатывает число как длинное. Кажется противоречащим мне (поскольку int чаще используется, чем длинный).
Итак, мой новый вопрос: есть ли обозначение EL для доступа к карте с помощью значения Integer?