Ответ 1
Установите его как тело <c:set>
. Он будет неявно преобразован в String
.
<c:set var="idAsString">${model.data.id}</c:set>
<c:out value="${model.myHashtable[idAsString]}" />
Как исправить это утверждение:
${model.myHashtable[model.data.id]}.
myHashtable определяется как
Hashtable<String, String>
Но ${model.data.id}
возвращает int
.
Я попытался сделать что-то вроде
${model.myHashtable['model.data.id']}
Но это не сработает. Любые другие идеи, кроме изменения типа id
до String
?
Установите его как тело <c:set>
. Он будет неявно преобразован в String
.
<c:set var="idAsString">${model.data.id}</c:set>
<c:out value="${model.myHashtable[idAsString]}" />
вы можете использовать org.apache.commons.collections4.map.CaseInsensitiveMap как String "1", так и int 1 - это один и тот же ключ;
${''. concat (model.data.id)} работает для меня, вы можете попробовать.
В JSP файле:
<%@ 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}" />