Wie korrigiere ich diese Aussage:
${model.myHashtable[model.data.id]}.
myHashtable ist definiert als
Hashtable<String, String>
Aber ${model.data.id}
gibt eine int
zurück.
Ich habe versucht, so etwas zu tun
${model.myHashtable['model.data.id']}
Aber es funktioniert nicht. Irgendwelche anderen Ideen, außer den Typ von id
zu String
zu ändern?
Setze es als Body von <c:set>
. Es wird implizit in String
konvertiert.
<c:set var="idAsString">${model.data.id}</c:set>
<c:out value="${model.myHashtable[idAsString]}" />
sie können org.Apache.commons.collections4.map.CaseInsensitiveMap verwenden. Sowohl String "1" als auch int 1 sind der gleiche Schlüssel.
$ {''. concat (model.data.id)} funktioniert für mich, Sie können es versuchen.
In der JSP-Datei:
<%@ taglib prefix = "fmt" uri = "http://Java.Sun.com/jsp/jstl/fmt" %>
<!-- lines of code... -->
<fmt:parseNumber var = "id_value" type = "number" value = "${model.data.id}" />
<c:out value = "${id_value}" />