2012-09-20 11 views
13

Mam Map w EL jako ${map} i staram się uzyskać jego wartość za pomocą klucza, który sam jest również zmienną EL ${key} o wartości "1000".Dostęp do wartości mapy w EL przy użyciu zmiennej jako klucza

Korzystanie z prac , ale ${map["$key"]} nie działa. Co robię źle i jak mogę uzyskać wartość Map używając zmiennej jako klucza?

+1

$ nie jest początkiem nazwy zmiennej, wskazuje początek wyrażenia. –

Odpowiedz

-4

myślę, że należy uzyskać dostęp do mapy swoje coś takiego:

${map.key} 

i sprawdzić kilka tutoriali o JSTL jak 1 i 2 (trochę przestarzałe, ale nadal funkcjonalne)

+0

Próbowałem $ {map. $ Key}, ale nie działało – user1643001

+0

Not $ {map. $ Key}, tylko $ {map.key} – Nickmancol

19

$ nie jest początek nazwy zmiennej, wskazuje początek wyrażenia. Powinieneś użyć ${map[key]}, aby uzyskać dostęp do nieruchomości key na mapie map.

Można spróbować go na stronie z parametrem GET, stosując następujący ciąg kwerendy na przykład ?whatEver=something

<c:set var="myParam" value="whatEver"/> 
whatEver: <c:out value="${param[myParam]}"/> 

wyjście to:

whatEver: something 

zobacz: https://stackoverflow.com/tags/el/info i przewiń do sekcji "Zapis nutowy".

+0

Rozwiązanie nie działa: -/ –

+0

Coś jeszcze jest nie tak. Przetestowałem przykład w moim poście, aby upewnić się, że działa (i że '$ {map.key}' nie działa). –

1

można umieścić klucz-wartość w mapie na Java strony i dostęp do tego samego za pomocą JSTL na JSP strony jak poniżej:

Przed Java 1.7:

Map<String, String> map = new HashMap<String, String>(); 
map.put("key","value"); 

Java 1.7 i powyżej:

Map<String, String> map = new HashMap<>(); 
map.put("key","value"); 

JSP Snippet:

<c:out value="${map['key']}"/> 
3

mam przed obliczu tego problemu. Zwykle dzieje się tak, gdy klucz nie jest ciągiem. Rozwiązaniem jest oddać klucz do String przed użyciem przycisku, aby uzyskać wartość z mapy

coś takiego:

<c:set var="keyString">${someKeyThatIsNotString}</c:set>

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

nadzieję, że pomoże