如何更正此声明:
${model.myHashtable[model.data.id]}.
myHashtable定义为
Hashtable<String, String>
但是,${model.data.id}
会返回int
。
我尝试做类似
的事情${model.myHashtable['model.data.id']}
但它不起作用。除了将id
的类型更改为String
之外,还有其他任何想法吗?
答案 0 :(得分:35)
将其设为<c:set>
的正文。它将隐式转换为String
。
<c:set var="idAsString">${model.data.id}</c:set>
<c:out value="${model.myHashtable[idAsString]}" />
答案 1 :(得分:0)
你可以使用org.apache.commons.collections4.map.CaseInsensitiveMap字符串“1”和int 1都是相同的键;
答案 2 :(得分:0)
$ {''。concat(model.data.id)}对我有用,你可以尝试一下。
答案 3 :(得分:0)
在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}" />
答案 4 :(得分:-2)
${model.data.id} 返回一个整数,使用Hashtable