Как я могу получить доступ к HashMap с JSTL-EL в JSP? - PullRequest
1 голос
/ 10 февраля 2011

Привет всем, у меня есть проблема с доступом к HashMap в мой jsl с использованием EL и JSTL, мой хэш-карта похожа на таковую в сервлете:

HashMap indexes=new HashMap();

, тогда давайте предположим, что я добавляю что-то вроде:

indexes.put(1,"Erik")

затем я добавляю его в сессию: session.setAttribute("indexes",indexes)

из jsp, если я получаю доступ к хэш-карте, как это

${sessionScope.indexes}

показывает все пары ключ-значение вкарта, но вот так, например:

${sessionScope.indexes[1]} or ${sessionScope.indexes['1']}

это не сработает

, насколько я понимаю, это метод, который используется во многих уроках. Я не знаю, где я проваливаю любое предложение

1 Ответ

3 голосов
/ 10 февраля 2011

Числа считаются длинными в EL.В вашем случае:

HashMap indexes = new HashMap();
indexes.put(1, "Erik"); // here it autobox 1 to Integer

и на jsp

${sessionScope.indexes[1]} // will search for Long 1 in map as key so it will return null
${sessionScope.indexes['1']} // will search for String 1 in map as key so it will return null

Так что вы можете сделать ключ карты длинным или строковым для использования.и

${sessionScope.indexes[1]} // will look for Long 1 in map as key

или

Map<String, String> indexes = new HashMap<String, String>();
indexes.put("1", "Erik");

и

${sessionScope.indexes['1']} // will look for String 1 in map as key
...