ejemplos jsp el

ejemplos - jsp include



Acceda al valor del mapa en EL usando una variable como clave (4)

Tengo un Map en EL como ${map} y estoy tratando de obtener el valor usando una clave que es en sí misma también una variable EL ${key} con el valor "1000" .

El uso de ${map["1000"]} funciona, pero ${map["$key"]} no funciona. ¿Qué estoy haciendo mal y cómo puedo obtener el valor Map usando una variable como clave?


Creo que deberías acceder a tu mapa algo así como:

${map.key}

y ver algunos tutoriales sobre jstl como 1 y 2 (un poco desactualizado, pero aún funcional)


Puede poner la clave-valor en un mapa en el lado de Java y acceder a la misma usando JSTL en la página JSP como se muestra a continuación:

Prior java 1.7:

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

Java 1.7 y superior:

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

Fragmento de JSP:

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


Me he enfrentado a este problema antes. Esto normalmente ocurre cuando la clave no es una cadena. La solución es arrojar la clave a una Cadena antes de usar la clave para obtener un valor del mapa

Algo como esto:

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

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

Espero que ayude


$ no es el comienzo de un nombre de variable, sino que indica el inicio de una expresión. Debería usar ${map[key]} para acceder a la key propiedad en el mapa del map .

Puede probarlo en una página con un parámetro GET , usando la siguiente cadena de consulta, por ejemplo ?whatEver=something

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

Esto dará como resultado:

whatEver: something

Consulte: https://.com/tags/el/info y vaya a la sección "Notación de llaves".