# Hashtable value per JSTL auslesen



## TSH (7. Jan 2008)

In meinem Controller habe ich ein String2Float Mapping implementiert:


```
Map<String,Float> mapping = new Hashtable<String,Float>();

mapping.put("Anna", new Float(0.1));
mapping.put("Berta", new Float(0.2));
mapping.put("Claudia", new Float(0.3));

model.put("myvalues", mapping);
```

Nun sollte im entsprechenden JSP diese Hashtable unter dem Variablen-Namen ${myvalues} ansprechbar sein. Mit anderen klappt es so. Ich möchte jetzt via JSTL auf die entsprechenden Werte zugreifen. Allerdings nicht durch Iterieren, sondern durch Angabe des Schlüssels. So in der Art:


```
<c:forEach items="${persons}" var="person">
  <h3><c:out value="${person.name}" /></h3>
  

Der Wert für diese Person ist: <c:out value="${mapping[Berta]}" /></p>
</c:forEach>
```
Noch nicht mal das Beispiel mit dem festen Wert "Berta" klappt. Auch nicht mit 'Berta'. Geschweige denn mit der Variable person.name. Hat jemand eine Idee, was ich falsch mache?


----------



## ms (7. Jan 2008)

```
<c:out value="${mapping[Berta]}" />
```
Solltest du nicht auf "myvalues" zugreifen?

edit:
Und wenn du den Namen direkt anschreibst dann mit einfachen Hochkommas.
Also 
	
	
	
	





```
<c:out value="${myvalues['Berta']}" />
```

ms


----------



## TSH (7. Jan 2008)

OK, das mit mapping und myvalues war ein Tippfehler hier im Forum. In echt heissen die Variablen eh anders. Daran lag's nicht. Wenn ich auf den String mit 'Berta' zugreife, klappt es. Jetzt möchte ich aber über den Umweg des person.name gehen. Das hier klappt alles nicht:


```
<c:out value="${myvalues[$person.name]}"/>">
<c:out value="${myvalues['$person.name']}"/>">
<c:out value="${myvalues[person.name]}"/>">
<c:out value="${myvalues['${person.name}']}"/>">
<c:out value="${myvalues[${person.name}]}"/>">
```
Letzteres führt sogar zu einer Exception. Der Ausdruck gehe so nicht in der Javax EL.


----------



## TSH (7. Jan 2008)

Die 3. Variante geht doch. Muss wohl irgendwo ein Fehler drin gewesen sein...


----------

